2016-05-07 18 views
2

アンドロイドスタジオのAndroidスタジオ2.1 AI-143.2790544に最近更新されました。以前のバージョンでは、NDKのデバッグが正しく機能し、コードをステップ実行することができました。AndroidスタジオExperimental Plugin 0.6.0 NDKデバッグ

art::MallocAllocator::~MallocAllocator() 
art::JDWP::JdwpState::HandlePacket() 
art::JDWP::JdwpAdpState::ProcessIncoming() 
art::JDWP::JdwpState::Run() 
art::JDWP::StartJdwpThread(void *) 
__pthread_start(void *) 
__start_thread 

これは私のワークフローに非常に有害である:デバッガはデバッガがJDWPスレッド上で停止し、提示されたスタックフレームがあるブレークポイントで停止したときに、それを更新した後

らしいです。これを回避するには、スレッドを自分のコードベースに存在するスレッドに変更する必要があります。

現在、Galaxy S7、Nexus 5、およびx86 Nexus 5エミュレータでデバッグするときに同じ問題が発生します。

私のGradleのビルドファイルは以下の通り設定したプロパティを構築しています

apply plugin: 'com.android.model.application' 

model { 
    android { 
     compileSdkVersion = 18 
     buildToolsVersion = "24.0.0 rc2" 

     defaultConfig.with { 
      applicationId = "..." 
      minSdkVersion.apiLevel = 18 
      targetSdkVersion.apiLevel = 18 
      versionCode = 1 
      versionName = "1.0" 
     } 

     compileOptions.with { 
      sourceCompatibility JavaVersion.VERSION_1_6 
      targetCompatibility JavaVersion.VERSION_1_6 
     } 
    } 

    android.ndk { 
     moduleName = "coconuteng" 
     stl = "gnustl_static" 

     def libs = [ 
       "log", 
       "android", 
       "EGL", 
       "GLESv3", 
       "jnigraphics", 
       "dl" 
     ]; 

     def includes = [ 
       "-I${projectDir}/src/main/jni/engine/include".toString(), 
       "-I${projectDir}/src/main/jni/engine/glm".toString(), 
       "-I${projectDir}/src/main/jni/engine/lua".toString(), 
       "-I${projectDir}/src/main/jni/android_app_glue".toString(), 
       "-I${projectDir}/src/main/jni/engine/platforms/android".toString(), 
       "-I${projectDir}/src/main/jni/engine/platforms".toString() 
     ]; 

     def flags = [ 
       "-DGL_V_3", 
       "-DUSE_ANDROID", 
       "-DANDROID_NDK", 
       "-DFT2_BUILD_LIBRARY", 
       "-DDEBUG_SHADERS" 
     ]; 

     ldLibs.addAll(libs) 

     CFlags.addAll(flags) 
     CFlags.addAll(includes) 

     cppFlags.addAll(flags) 
     cppFlags.add("-std=c++11") 
     cppFlags.addAll(includes) 
    } 

    android.buildTypes { 
     release { 
      minifyEnabled = false 
      signingConfig = $.android.signingConfigs.get("release") 
     } 
     debug { 
      debuggable = true 
      applicationIdSuffix = ".debug" 
     } 
    } 

    android.signingConfigs { 
     create("release") { 
      keyAlias = "..." 
      keyPassword = "..." 
      storeFile = file("release-key.keystore") 
      storePassword = "..." 
      storeType = "jks" 
     } 
    } 

    // You can modify the NDK configuration for each variant. 
    components.android { 
     binaries.afterEach { binary -> 
//   String localProjectDir = "-L\""+projectDir.toString()+"/src/main/ldLibs/" + binary.name.toString() + "\"" 
//   binary.mergedNdkConfig.cppFlags.add(localProjectDir) 

      binary.mergedNdkConfig.cppFlags.add(
        "-DVARIANT=\"" + binary.name + "\"") 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.amazonaws:aws-android-sdk-core:2.+' 
    compile 'com.amazonaws:aws-android-sdk-s3:2.+' 
} 

私のGradleラッパー:

#Mon Oct 19 22:06:39 EDT 2015 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 

local.properties:

java.runtime.version=1.6 
ndk.dir=/home/julian/Android/Sdk/ndk-bundle 
sdk.dir=/home/julian/Android/Sdk 

と私のプロジェクトのbuild.gradle :

// Top-level build file where you can add configuration options common to all sub-projects/modules. 
buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle-experimental:0.6.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

この問題に関するお手伝いをいただければ幸いです。

+0

私は全く同じ問題を抱えています。解決策を見つけましたか? – goe

答えて

0

Android Studioを最新のバージョン(私の場合は2.1.3)に更新してから、使用したグラデーションを最後の実験バージョン(gradle-experimental:0.7.3)に変更することができます。

最終プロジェクトのbuild.gradleは次のようになりSHOLD:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle-experimental:0.7.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

私の知る限りでは、0.7.3バージョンは 'Gradleの-2.14.1-すべて' を使用するため、Gradleの-ラッパーのプロパティファイルは次のようになります。

#Thu Aug 25 10:42:24 CEST 2016 
distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 
関連する問題