2

我有一个使用 Firebase Crashlytics 的 Android 应用程序,它现在作为 Android App Bundle (AAB) 分发,由主应用程序(模块 A)和按需动态加载的模块 B 组成。此外,模块 B 中的活动和服务在子进程中运行,不确定这是否相关。模块 A 和 B 都有自己的原生库,它们在 Android Studio 中构建,我们称它们为 libA.so 和 libB.so。在完成每个发布构建后,我还运行 Gradle 任务上传 CrashlyticsSymbolFileRelease,但这只会上传 libA.so 的符号。当动态模块发生崩溃并且它是本机库 libB.so 时,Crashlytics 只向我显示通用堆栈跟踪,没有任何函数名称、行号等。

请问如何强制上传 libB.so 的本机符号?

2020 年 9 月 27 日更新

更新了动态的模块 build.gradle:

buildTypes {
    release {
        firebaseCrashlytics {
            nativeSymbolUploadEnabled true
        }
    }
    debug {
        debuggable true
        jniDebuggable true
        firebaseCrashlytics {
            mappingFileUploadEnabled false
            nativeSymbolUploadEnabled false
        }
    }
}

现在在这个模块的 gradle 选项卡上的 Android Studio 中,我也有一个 uploadCrashlyticsSymbolFileRelease 命令。伟大的。我执行它,一段时间后构建崩溃并显示错误消息:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':myDynModule:uploadCrashlyticsSymbolFileRelease'.
> variant.getApplicationId() is not supported by dynamic-feature plugins 
  as it cannot handle delayed setting of the application ID. Please use 
  getApplicationIdTextResource() instead.

似乎需要在为动态功能模式运行 uploadCrashlyticsSymbolFileRelease 命令的 gradle 脚本中更正某些内容,但我不知道要修复什么以及在哪里......

2020 年 10 月 1 日更新

向 Firebase 支持提交了支持票证请求,让我们看看他们是否有什么好的建议,或者可能决定修复一个错误......

格雷格

4

0 回答 0