Как получить отладку NDK для работы в Android Studio?
Android Studio не останавливается на контрольных точках в коде на С++, это то, что я сделал до сих пор:
-
В AndroidManifest.xml:
android:debuggable="true"
-
В build.gradle(это может быть проблема):
sourceSets.main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = []
}
task ndkBuild(type: Exec) {
commandLine android.ndkDirectory.getAbsolutePath() + '\\' + 'ndk-build.cmd', '-C', file('src/main/jni').absolutePath, 'NDK_DEBUG=1'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
-
Настроено приложение как родное приложение на Android Studio
-
Поместите контрольные точки в код С++
-
Отладить приложение
Кажется, что это работает, потому что он говорит: "Теперь запускать собственный отладочный сеанс", кроме того, я могу приостановить приложение с помощью кнопки "Стоп", но не работает точка останова.
Спасибо за помощь
Ответы
Ответ 1
По синтаксису вашего build.gradle похоже, что вы не используете экспериментальный плагин для gradle,
без него вы не сможете отлаживать собственный c/С++ в студии Android.
Для получения дополнительной информации прочтите следующее: Android NDK Preview
Ответ 2
-
В закладке "Отладка" - "Отладка" - "Отладка" выберите "Тип отладки" как "Родной". В поле "Перед запуском", если Android-студия сообщает о конфликтах, примите рекомендацию "исправить". Студия Android загрузит библиотеку lldb.
-
нажмите на нижнюю часть отладки и дождитесь, пока отладчик будет прикреплен к процессу.
-
теперь вы можете видеть переменные в ветке отладки.
Ответ 3
Если вы все еще ищете, Android Studio недавно добавила поддержку прямой интеграции проектов ndk-build и CMake: http://tools.android.com/tech-docs/external-c-builds
С уважением,
Jomo
Ответ 4
вы можете попробовать следующее:
1.в приложении /build.gradle:
на метке зависимостей:
releaseCompile project(path:':youModuleName',configuration:'release')
debugCompile project(path:':youModuleName',configuration:'debug')
2.in youModule/build.gradle:
на ярлыке android:
publishNonDefault true
демо:
https://github.com/sunalong/JNIDemo
Ответ 5
Android Studio 3
Android Studio 3 делает весь процесс тривиальным.
Для начала возьмитесь за простой пример приложения, например: https://github.com/googlesamples/android-ndk/tree/2020d9674a6601e8219eed2921f5028beb856a24/hello-gl2/
Затем просто установите точки останова на С++ или Java и выполните: Run > Debug
Вы также можете перейти на собственные вызовы с Java и упасть в код на С++.
![введите описание изображения здесь]()
Ответ 6
этот codelab может помочь:
https://codelabs.developers.google.com/codelabs/android-studio-jni/index.html?index=..%2F..%2Findex#4
debug находится на шаге 5