[英]Android NDK in Android studio 2.0 preview 5 with gradle-experimental:0.6.0-alpha6
[英]Android studio Experimental Plugin 0.6.0 NDK Debugging
我最近在android studio上更新为android studio 2.1 AI-143.2790544。 在以前的版本中,NDK调试正常运行,并允许我逐步执行代码。
更新后,似乎只要调试器在断点处停止,调试器就在JDWP线程上停止,并且显示的堆栈帧为:
art::MallocAllocator::~MallocAllocator()
art::JDWP::JdwpState::HandlePacket()
art::JDWP::JdwpAdpState::ProcessIncoming()
art::JDWP::JdwpState::Run()
art::JDWP::StartJdwpThread(void *)
__pthread_start(void *)
__start_thread
这对我的工作流程非常不利。 为了解决这个问题,我必须将线程更改为代码库中存在的线程。
当前,在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()
}
}
任何与此问题的帮助将不胜感激。
您可以解决此问题,首先将Android Studio更新到最新的可用版本(在我的情况下为2.1.3),然后将使用的gradle更改为最新的实验版本(gradle-experimental:0.7.3)。
最终项目的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.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-all”,因此gradle-wrapper-properties文件应如下所示:
#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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.