Я пытаюсь добавить поддержку Crashlytics в свой Android-проект, который использует NDK и gradle CMake. Это означает, что мне нужны символы для моих общих проектов. Так что, если я хочу, чтобы создать символы для сборки релиза я позвоню gradlew crashlyticsUploadSymbolsRelease
Crashlytics Создание символа NDK из командной строки
Официальный документ в https://docs.fabric.io/android/crashlytics/ndk.html говорит, что Процесс генерации символов и загрузка предполагает стандартную структуру проекта: SRC/главная/объект для отладки бинарных файлов, и src/main/libs для исполняемых файлов выпуска, созданных ndk-build.
В Gradle файле это означает, что новый блок, который, как следующее:
crashlytics {
enableNdk true
androidNdkOut 'src/main/obj'
androidNdkLibsOut 'src/main/libs'
}
Поскольку я использую Gradle CMake интеграции строить свои собственные LIBS, пути по умолчанию, конечно, не работают. Мои родные библиотеки в режиме выпуска встроены в каталог build/intermediates/cmake/release/obj
, а в режиме отладки они идут в каталог build/intermediates/cmake/debug/obj
.
Из проб и ошибок я понял, что, если я хочу, чтобы моя версия релиза работала, мне придется поместить путь к исходным библиотекам режима выпуска в обе строки, как показано ниже.
crashlytics {
enableNdk true
androidNdkOut 'build/intermediates/cmake/release/obj'
androidNdkLibsOut 'build/intermediates/cmake/release/obj'
}
Я просто действительно не понимают разницу между androidNdkOut
и androidNdkLibsOut
переменных, так как, по крайней мере в моем случае они указывают на тот же каталог. К счастью, это не проблема для меня, потому что мне просто нужны Crashlytics для работы с моими версиями.
Так что мои вопросы:
1) Что на самом деле разница между androidNdkOut
и androidNdkLibsOut
? Почему я не могу поместить путь к моим двоичным файлам отладки в один путь и путь к выпуску двоичных файлов для другого? Конкретный пример был бы приятным в дополнение к объяснению.
2) Как мне изменить свой файл градации, если в какой-то момент я хочу включить символы для моих библиотек отладки? Это означает, что команда gradlew crashlyticsUploadSymbolsRelease
, а также gradlew crashlyticsUploadSymbolsDebug
будет работать?
Об этом обсуждении в сообщениях Crashlytics NDK symbols and Gradle tasks и Crashlytics NDK multi androidNdkOut path support, но они действительно не отвечают на эти два вопроса.
Вы получили номера строк? Где вы нашли нераспределенный бинарный файл? Те пути, которые вы предоставили, контактируют только с лишенными .so, нет? – urSus