我正在使用 Android Studio
并尝试在 Release模式下构建我的项目。
在 Debug模式下一切正常,但在 Release模式下出现以下错误...
08-26 17:59:05.599 31696-31931/? W/System.err﹕ java.lang.NoClassDefFoundError: a.a.b.l
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at java.lang.Class.classForName(Native Method)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at java.lang.Class.forName(Class.java:308)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at java.lang.Class.forName(Class.java:272)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at com.a.a.a.a(Unknown Source)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at com.a.a.a.a(Unknown Source)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at com.a.a.e.b(Unknown Source)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at com.a.a.e.a(Unknown Source)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at com.a.e.a.uncaughtException(Unknown Source)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
08-26 17:59:05.599 31696-31931/? W/System.err﹕ at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
08-26 17:59:05.600 31696-31931/? E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
Process: com.soonoo.mobilecampus, PID: 31696
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.ExceptionInInitializerError
at a.a.b.l.a(Unknown Source)
at a.a.b.m.<clinit>(Unknown Source)
at a.a.b.f.<init>(Unknown Source)
at a.a.b.e.<init>(Unknown Source)
at a.a.c.di.b(Unknown Source)
at a.a.c.di.a(Unknown Source)
at a.a.c.b.a(Unknown Source)
at a.a.c.ae.b(Unknown Source)
at a.a.a.a(Unknown Source)
at com.soonoo.mobilecampus.mainlist.h.a(Unknown Source)
at com.soonoo.mobilecampus.mainlist.h.doInBackground(Unknown Source)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: in == null
at java.util.Properties.load(Properties.java:246)
at a.a.b.l.d(Unknown Source)
at a.a.b.l.<clinit>(Unknown Source)
at a.a.b.l.a(Unknown Source)
at a.a.b.m.<clinit>(Unknown Source)
at a.a.b.f.<init>(Unknown Source)
at a.a.b.e.<init>(Unknown Source)
at a.a.c.di.b(Unknown Source)
at a.a.c.di.a(Unknown Source)
at a.a.c.b.a(Unknown Source)
at a.a.c.ae.b(Unknown Source)
at a.a.a.a(Unknown Source)
at com.soonoo.mobilecampus.mainlist.h.a(Unknown Source)
at com.soonoo.mobilecampus.mainlist.h.doInBackground(Unknown Source)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
问题是异常消息不显示类名,发生错误的方法。
我在项目中使用的所有第三方库都在 build.gradle
中指定。
我怎样才能解决这个问题?
最佳答案
问题基本上是这样的:
buildTypes {
release {
**minifyEnabled false**
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
如果您将 minifyEnabled 设置为 false,它应该可以解决您的问题。如果你想使用缩小功能,那么你可以将 progaurd 规则添加到你的 build.gradle 中。例如,对于 Butterknife 库,您必须添加以下内容:
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}
很高兴我能帮上忙
关于java - Android:NoClassDefFoundError 仅适用于发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32222480/