Подтвердить что ты не робот

Как получить отладку 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
    }
    
    1. Настроено приложение как родное приложение на Android Studio

    2. Поместите контрольные точки в код С++

    3. Отладить приложение

Кажется, что это работает, потому что он говорит: "Теперь запускать собственный отладочный сеанс", кроме того, я могу приостановить приложение с помощью кнопки "Стоп", но не работает точка останова.

Спасибо за помощь

4b9b3361

Ответ 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 и упасть в код на С++.

введите описание изображения здесь