0

У меня есть вопрос, который в основном относится к градиенту.Crashlytics NDK символы и задачи Gradle

Я использую Crashlytics, чтобы сообщать о сбоях NDK в моем приложении для Android. У меня есть задача в build.gradle, которая вызывает ndk-build и компилирует файлы cpp в файл .so. В конце этой задачи я хочу вызвать задачу, которая загружает сгенерированные символы в Crashlytics.

После установки плагина Fabric в Android Studio я увидел новые задачи, которые были добавлены на вкладку Gradle. Один из них - crashlyticsUploadSymbols [buildType] [flavor], где buildType и flavor указывают, какой тип сборки и вкус выбраны в данный момент.

Эта задача, похоже, загружает файл символов.

Мой вопрос: Можно ли вызвать эту задачу изнутри build.gradle? В настоящее время я использую ручной вызов на вкладке Android Studio в терминале в виде:

./gradlew crashlyticsUploadSymbols [buildType] [вкус]

Можно ли назвать эту задачу как-то изнутри build.gradle?

Для вызова этой задачи я использую finalizedBy в конце задачи buildNdk, поэтому, как только buildNdk закончит, задача загрузки будет выполнена.

Также очень важно, как я могу получить текущий buildType и аромат, чтобы я смог добавить его в вызов crashlyticsUploadSymbols?

Спасибо!

ответ

1

Mike от Crashlytics и Fabric здесь.

Этому также был дан ответ на форуме сообщества Twitter, но здесь вы найдете один и тот же ответ.

Вариант 1:

Если вы хотите, или нужно загрузить символы для вашего выпуска сборки, то вы можете установить crashlticsUploadSymbolsRelease как finalizedBy задачи для вашей задачи NDK-сборки.

Вариант 2: Если у вас есть несколько задач на основе вариантных, вы можете сделать что-то вроде:

android.applicationVariants.all { variant -> 
    def variantName = variant.name.capitalize() 
    def task = project.task ("ndkBuild${variantName}") 
    task.finalizedBy project.("crashlyticsUploadSymbols${variantName}") 
} 
+0

Это не работает для me, я получаю 'Ошибка: (101, 0) Не могу добавить задачу ': App: externalNativeBuildProdDebug' как задача с таким именем уже существует. Open File 'так что еще нужно загрузить вручную :( – marchinram

+0

Похоже, что у вас может быть дублируемая задача, но я бы рекомендовал опубликовать новый вопрос с более подробной информацией. –

0

Следующая сделали работу для меня:

android { 
... 
    afterEvaluate { 
     assembleDebug.finalizedBy(crashlyticsUploadSymbolsDebug) 
     assembleRelease.finalizedBy(crashlyticsUploadSymbolsRelease) 
    } 
} 
+0

Это не дает ответа на вопрос. Как только у вас будет достаточно [ репутация] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуйте разъяснений у афера] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead) - [Из обзора] (/ review/low-quality-posts/18173943) – thewaywewere

Смежные вопросы