Crashlytics NDK symbols and Gradle tasks

ⅰ亾dé卋堺 提交于 2019-12-05 03:49:19

问题


I have a question that mostly relates to gradle.

I'm using Crashlytics to report NDK crashes in my Android app. I have a task in build.gradle that calls ndk-build and compiles the cpp files into an .so file. At the end of this task I want to call a task that uploads generated symbols mapping to Crashlytics.

After installing the Fabric plugin in Android Studio, I saw there are some new tasks that were added to the Gradle tab. One of them is crashlyticsUploadSymbols[buildType][flavour] where buildType and flavour indicate which buildtype and flavour is currently selected.

This task does seem to upload a symbols file.

My question is, Is it possible to call this task from within build.gradle? Currently I use a manual call in Android Studio's terminal tab in the form of:

./gradlew crashlyticsUploadSymbols[buildType][flavour]

Is it possible to call this task somehow from within build.gradle?

To call this task I use finalizedBy at the end of the buildNdk task, so once buildNdk has finished, the upload task will execute.

Also very important, how can I get the current buildType and flavour so I am able to add it to the crashlyticsUploadSymbols call?

Thank you!


回答1:


Mike from Crashlytics and Fabric here.

This was also answered on the Twitter Community forum's, but sharing the same answer here.

Option 1:

If you only want or need to upload symbols for your release builds, then you can set crashlticsUploadSymbolsRelease as the finalizedBy task for your ndk-build task.

Option 2: If you have multiple variant-based tasks, you can do something like:

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



回答2:


The following did the job for me:

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


来源:https://stackoverflow.com/questions/37435865/crashlytics-ndk-symbols-and-gradle-tasks

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!