为什么我的android应用程序报告它不能;查找“;我自己的班级?可能与proguard有关?

为什么我的android应用程序报告它不能;查找“;我自己的班级?可能与proguard有关?,android,proguard,Android,Proguard,我正在开发一个android应用程序,最近开始使用proguard,因为库中包含了“大量的类” 在这个过程中,我能够添加proguard规则,并最终重新编译我的应用程序,甚至“运行”它 只有每次我“运行”它时,它才会出错并报告 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myCompany.myModule.Utils" on path: DexPathList... 由于实现proguard是为了减少

我正在开发一个android应用程序,最近开始使用proguard,因为库中包含了“大量的类”

在这个过程中,我能够添加proguard规则,并最终重新编译我的应用程序,甚至“运行”它

只有每次我“运行”它时,它才会出错并报告

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myCompany.myModule.Utils" on path: DexPathList...
由于实现proguard是为了减少类的总数,所以我在每个构建中都使用proguard。我很高兴知道问题出在这个文件上,因为这个应用程序在添加之前运行得很顺利。 我在android studio中的proguard.pro文件中添加了以下几行,试图强制解决此问题:

-keepclassmembers class com.myCompany.myModule
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application

-keepclasseswithmembers class com.myCompany.myModule.** { *; }
-keepclasseswithmembers class com.myCompany.myModule.Utils {*;}
然而,这并不能解决问题


我不知所措,因为我的应用程序在启动时立即出错。你有什么办法可以解决这个问题吗?

如果你得到一个ClassNotFoundException,你应该像这样保存这个类:

-keep class com.myCompany.myModule.Utils
选项-keepclassmembers仅保留指定的类成员(字段和方法)

选项-keepClassswithMembers仅保留具有指定类成员(以及这些成员)的类


请参阅ProGuard手册>用法>

我解决了它!这真的很奇怪,但是我将类“Utils”从“public类”更改为“public final类”,并且它运行起来没有问题。唷!那一天我再也回不去了在什么情况下你在使用
Utils
类?尝试添加这一行:
-keep class com.myCompany.myModule.Utils{*}
。谢谢,这已经在proguard配置文件中,如上所示。。。