Сначала проверьте, выбран ли вариант отладки для библиотеки.
Поскольку у вашего build.gradle есть настройка, path "src/main/cpp/CMakeLists.txt"
, я думаю, он не будет собираться. Так что установите targets
, пересоберите и проверьте снова.
Если точки останова не работают после сборки, старый мусор может остаться в кэше сборки и вызвать проблемы. Откройте каталог проекта в проводнике и удалите кэш сборки (папка .externalNativeBuild) вручную и снова соберите проект. Я также удаляю папку сборки, так как она содержит .so файлы в промежуточном каталоге, но это необязательно.
Android Studio не очищает библиотеки в тестовом устройстве. Они в основном перезаписываются, но очищают их вручную в зависимости от потребностей. Файлы находятся в / data / app / (имя пакета) / lib / (cpu arch.) /.
Примечание: меню синхронизации в проводнике файлов устройства не синхронизируется должным образом в каталоге lib или (cpu arch.). Для синхронизации выберите / data или / data / app и выберите Synchronize.
NB.1 Если targets
опущено, Android Studio, похоже, не создает целей. Встроенный вывод находится в (проект) / приложение / сборка / промежуточные / cmake / (вкус) / obj / (архитектура процессора). Если кажется, что он работает без каких-либо целей, проверьте файлы на устройстве. Они путают результаты теста.
NB.2 debuggable true
предназначен для сборки выпуска, чтобы включить отладку. Нет необходимости устанавливать его для отладочной сборки, так как флаг отладки установлен по умолчанию.
NB.3 Кажется, что зависит от версии, но Gradle в Android Studio не очищает дерево .externalNativeBuild должным образом, даже если вызывается clean или rebuild, и сбивает с толку конфигурации сборки собственного кода. Это было около AS3.0, насколько я помню.
NB.4 Моя среда
- Android Stuidio 3.2.1
- classpath 'com.android.tools.build:gradle:3.2.1'
- Gradle-4,7-все
- CMake: по умолчанию (3.6.4111459)
Я знаю, что есть более новые версии для Android Studio, Gradle и CMake, но они глючат, поэтому я выбрал текущую среду. Насколько я знаю, Android Studio 3.3, gradle: 3.3.0, gradle-4.10.1-all имеют серьезные ошибки в VCS (git). Неправильное содержимое файла отображается в редакторе и сборка иногда завершается неудачно. Установка версии CMake на 3.10.x (для меня 3.10.2) также кажется глючной.
Вот копия моего проекта в качестве образца, частично модифицированная от оригинала, но может работать.
Я проверил точки останова в работе библиотеки в Android Studio 3.2.1.
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "0.0.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'proguard-rules.pro'
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
arguments "-DANDROID_STL=c++_static"
targets "sample"
}
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Обновление
target упоминается здесь Guide - Link Gradle к вашей собственной библиотеке - укажите дополнительные конфигурации .