启用Proguard导致应用程序崩溃(找不到类“androidx.core.app.CoreComponentFactory”)。

6
我已经将我的应用迁移到了AndroidX。如果我禁用Proguard,一切都正常工作。如果我启用Proguard,应用程序可以成功构建,但在打开应用程序时会崩溃。
引起问题的原因是:java.lang.NullPointerException: 尝试在空对象引用上调用 'int java.lang.String.length()' 方法。 以下是具体错误信息:
at com.app.example.utils.da.a(Unknown Source:15) at com.app.exampler.utils.da.b(Unknown Source:10) at com.app.example.utils.da.a(Unknown Source:9) at com.app.example.base.MyApplication.onCreate(Unknown Source:2) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1162) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6636) at android.app.ActivityThread.access$2000(ActivityThread.java:268) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1995) at android.os.Handler.dispatchMessage(Handler.java:109) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:7539) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
另外也出现了以下错误: Unable to instantiate appComponentFactory java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[]
我尝试了一些解决方案,但它们并没有帮助到我。
可以尝试下面两个解决方案: proguard-rules.pro -keep class androidx.core.app.CoreComponentFactory { *; }
manifest.xml tools:replace="android:appComponentFactory" android:appComponentFactory="your.app.CustomAppComponentFactory"
请问有人像我一样遇到了同样的问题吗?你是如何解决这个问题的?谢谢。

请使用android:appComponentFactory="androidx.core.app.CoreComponentFactory"。 - Shomu
1个回答

5

在启用proguard之后,我遇到了同样的问题。在我的情况下,通过清理项目解决了该问题。尝试在清理后运行应用程序。

Android Studio -> Build -> Clean Project

无需在清单文件中添加额外的proguard规则或任何其他内容。

希望这可以帮助到你!


谢谢Mayank!这真的很有效。即使添加了proGuard规则,对我来说也不起作用。 - Mohit Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接