我的Firebase Crashlytics日志对于使用Proguard时的一些崩溃是部分模糊的(仅限方法名称),即使映射似乎设置正确。
Proguard映射一直工作到9月12日,这是Gradle (通过Jenkins)最后一次将Uploading deobfuscation file和相关日志记录到~/Library/Caches/com.crashlytics/com.crashlytics.tools/crashlytics.log中。现在,Gradle不会记录任何与Proguard混淆文件相关的日志或错误。此外,我检查了日期之前的git提交,以确保相关内容没有更改。
下面是我的实现。我已经在文档中添加/排除了Proguard规则。
添加:
-keep public class * extends java.lang.Exception
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable排除:-printmapping mapping.txt
下面是一个方法名未被混淆的示例:
com.app.android.coursetaking.nonvideo.ebook.EbookDataManager.a (SourceFile:18)
com.app.android.coursetaking.nonvideo.ebook.EbookViewModel.a (SourceFile:53)
com.app.android.viewmodel.RxViewModel.a (SourceFile:110)
com.app.android.viewmodel.RxViewModel.O (SourceFile:102)
com.app.android.coursetaking.nonvideo.ebook.AbstractEbookFragment.onViewCreated (SourceFile:98)
androidx.fragment.app.FragmentManagerImpl.a (SourceFile:1471)
androidx.appcompat.app.AppCompatActivity.onStart (SourceFile:178)
com.app.android.activity.BaseActivity.onStart (SourceFile:212)
com.app.android.core.activity.UserBoundActivity.onStart (SourceFile:63)
android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1391)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)如果我查找映射文件,我可以看到到混淆名称的映射。
我认为问题发生在应用程序构建之后,因为我可以看到映射文件。但是由于缺乏Firebase Crashlytics的Gradle日志,我不确定下一步该去哪里看。
最后,我尝试手动运行Gradle任务来上传一个签名的APK,crashlyticsUploadDistributionMainAppRelease。它找不到一个签名的APK:Crashlytics halted compilation because it can't distribute the unsigned APK path/to/release/app-mainApp-release.apk,即使有一个签名的APK。
发布于 2019-10-02 02:10:04
Fabric Crashlytics是Proguard映射问题的原因。我使用的是1.29.0版本和1.30.0,they solved my problem: Fixed an issue preventing mapping files from being uploaded for Proguard builds with Android Gradle Plugin 3.5.版本。升级到1.31.1版本后,现在可以在Firebase Crashlytics上查看未模糊的映射。
https://stackoverflow.com/questions/58176481
复制相似问题