【发布时间】:2026-01-13 12:35:02
【问题描述】:
根据链接http://ph0b.com/new-android-studio-ndk-support/ 看到子标题“使用Android.mk/Application.mk”,文章声称可以使用Android Studio 进行编辑和调试。我已按照那篇文章的所有说明进行操作,但调试器似乎从未遇到断点。这对任何人都有效吗?
更多信息
我的设置
- Android Studio 1.4
- Gradle 2.6
- Android Gradle 插件 0.3.0-alpha5
-
我的 build.gradle 看起来像这样
应用插件:'com.android.model.application'
型号{ 安卓 { compileSdkVersion = 21 buildToolsVersion = "23.0.0 rc2"
defaultConfig.with { applicationId = "blah.blah1.com.blah3" minSdkVersion.apiLevel = 21 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "1.0" } } android.buildTypes { release { minifyEnabled = false } } android.ndk { moduleName = "blahPlayer" ldLibs = ["log"] cppFlags += "-std=c++11" cppFlags += "-I${blahRoot}".toString() stl = "gnustl_shared" } android.sources { main.jni { source { srcDirs = ['src/main/none'] } } main.jniLibs { source { srcDirs = ['src/main/libs'] } } } android.productFlavors { create("arm") { ndk.with { abiFilters += "armeabi-v7a" } } }}
我的本机源在 app/src/jni 中的源和 FS 的不同位置(因为某些源是第三方)之间进行了拆分
- 代码完成工作正常(我可以在第三方源中包含和使用源)
- 我在外部使用 Android.mk 和 Application.mk 和 ndk-build 构建所有本机源。 SO 文件在 jniLibs 下生成,应用运行良好
当我在 app/src/jni 或第三方源位置下的本机源代码中设置断点时,调试器永远不会命中它们。
【问题讨论】:
-
检查 define LOCAL_SRC_FILES in ndk{} DSL。 TL;NR:使用
ndk-build将代码构建为 static 库,使用 gradle 插件链接到 shared 库。
标签: android debugging android-studio android-ndk android-gradle-plugin