Подробные журналы сборки из Android Studio

#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 раздела, если вы получаете ошибки Gradle

3. У меня нет раздела 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"