#android #c #android-studio #gcc #cmake
#Android #android-studio #android-ndk #build.gradle
Вопрос:
Как мне получить подробный журнал (включая аргументы командной строки для компилятора и компоновщика) при сборке с Android Studio?
Я только что перешел с Ant / Android.mk сборки для Android-студийных сборок. В старой системе я смог увидеть, как был вызван компилятор, выполнив:
$ ndk-build V=1
Какова была бы эквивалентная настройка в Android Studio для достижения этой цели?
У меня есть подозрение, что мой проект строится на основе неправильной версии GLES (gles2 вместо gles3), и я хочу убедиться в этом, просмотрев аргументы командной строки для компоновщика.
Ответ №1:
Оказывается, вы можете сделать сборку подробной, изменив файл build.gradle следующим образом:
externalNativeBuild {
cmake {
arguments "-DCMAKE_VERBOSE_MAKEFILE=1"
}
}
При использовании ndk-build вместо cmake используйте это вместо:
externalNativeBuild {
ndkBuild {
arguments "V=1"
}
}
Комментарии:
1. в блоке ndkBuild такой конфигурации нет
arguments "V=1"
`2. Вам нужно поместить
externalNativeBuild
раздел внутриdefaultConfig
раздела, если вы получаете ошибки Gradle3. У меня нет раздела defaultConfig, и подробный синтаксис опции, приведенный выше, не работает, если вы поместите его на корневой уровень файла: Не удалось найти метод externalNativeBuild() для аргументов [build_3oifztzr5n296zezo3h5iddmk $_run_closure1 $_closure4 @49771ff] для объекта типа org.gradle.api.internal.initialization. DefaultScriptHandler.
Ответ №2:
Что касается https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/NdkBuild нет возможности передавать аргументы.
Но вы можете передать папку для выходных данных, которая генерирует.файлы json
externalNativeBuild {
ndkBuild {
// Tells Gradle to put outputs from external native
// builds in the path specified below.
buildStagingDirectory "./outputs/ndk-build"
path 'Android.mk'
}
}
Так что в моем случае в outputs/ndk-build/ debug/json_generation_record.json последнее «сообщение» сообщило мне об ошибке:
JSON generation completed with problem. Exception: Build command failed.
Error while executing process .... ndk-build.cmd ....
...
Android.mk:myLib-prebuilt: LOCAL_SRC_FILES points to a missing file
Android NDK: Check that ... exists or that its path is correct
...prebuilt-library.mk:45: *** Android NDK: Aborting . Stop.n"