启用Proguard会导致crashlytics异常

时间:2018-09-11 19:40:24

标签: android proguard crashlytics google-fabric

在我的gradle文件中启用proguard之后:

minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

我收到以下异常:

java.lang.RuntimeException: Unable to get provider com.crashlytics.android.CrashlyticsInitProvider: java.lang.ClassNotFoundException: com.crashlytics.android.CrashlyticsInitProvider

有趣的是,它可以在具有API26的Android上运行,但不能在API16上运行。 如果我打开生成的 mapping.txt 文件,我会看到以下行:

com.crashlytics.android.CrashlyticsInitProvider -> com.crashlytics.android.CrashlyticsInitProvider:

表明未对crashlytics进行混淆,但是BaseDexClassLoader仍然找不到它。

我的proguard-rules.pro看起来像这样:

-optimizationpasses 5
-repackageclasses
-allowaccessmodification
-dontpreverify
-dontskipnonpubliclibraryclasses
-repackageclasses ''

-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
-keepattributes SourceFile, LineNumberTable, *Annotation*
-keep public class * extends java.lang.Exception

我尝试启用multidex并解决了问题,但是当我的项目远未达到65k方法限制时,我不想拥有multidex。如果我禁用了proguard,则应用程序也可以正常运行。

Proguard是否负责增加方法数量?如何在不依赖multidex的情况下解决此问题?

0 个答案:

没有答案