Android:NoClassDefFoundError 仅在发布版本上

soo*_*noo 4 java android android-studio

我正在Android Studio尝试在发布模式下构建我的项目。
\n在调试模式下一切正常,但在发布模式下出现以下错误...

\n\n
08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 java.lang.NoClassDefFoundError: a.a.b.l\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at java.lang.Class.classForName(Native Method)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at java.lang.Class.forName(Class.java:308)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at java.lang.Class.forName(Class.java:272)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at com.a.a.a.a(Unknown Source)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at com.a.a.a.a(Unknown Source)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at com.a.a.e.b(Unknown Source)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at com.a.a.e.a(Unknown Source)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at com.a.e.a.uncaughtException(Unknown Source)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n08-26 17:59:05.599  31696-31931/? W/System.err\xef\xb9\x95 at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n08-26 17:59:05.600  31696-31931/? E/AndroidRuntime\xef\xb9\x95 FATAL EXCEPTION: AsyncTask #2\n    Process: com.soonoo.mobilecampus, PID: 31696\n    java.lang.RuntimeException: An error occured while executing doInBackground()\n            at android.os.AsyncTask$3.done(AsyncTask.java:300)\n            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)\n            at java.util.concurrent.FutureTask.setException(FutureTask.java:222)\n            at java.util.concurrent.FutureTask.run(FutureTask.java:242)\n            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n            at java.lang.Thread.run(Thread.java:818)\n     Caused by: java.lang.ExceptionInInitializerError\n            at a.a.b.l.a(Unknown Source)\n            at a.a.b.m.<clinit>(Unknown Source)\n            at a.a.b.f.<init>(Unknown Source)\n            at a.a.b.e.<init>(Unknown Source)\n            at a.a.c.di.b(Unknown Source)\n            at a.a.c.di.a(Unknown Source)\n            at a.a.c.b.a(Unknown Source)\n            at a.a.c.ae.b(Unknown Source)\n            at a.a.a.a(Unknown Source)\n            at com.soonoo.mobilecampus.mainlist.h.a(Unknown Source)\n            at com.soonoo.mobilecampus.mainlist.h.doInBackground(Unknown Source)\n            at android.os.AsyncTask$2.call(AsyncTask.java:288)\n            at java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.lang.Thread.run(Thread.java:818)\n     Caused by: java.lang.NullPointerException: in == null\n            at java.util.Properties.load(Properties.java:246)\n            at a.a.b.l.d(Unknown Source)\n            at a.a.b.l.<clinit>(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.b.l.a(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.b.m.<clinit>(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.b.f.<init>(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.b.e.<init>(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.c.di.b(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.c.di.a(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.c.b.a(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.c.ae.b(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at a.a.a.a(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at com.soonoo.mobilecampus.mainlist.h.a(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at com.soonoo.mobilecampus.mainlist.h.doInBackground(Unknown Source)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at android.os.AsyncTask$2.call(AsyncTask.java:288)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0at java.lang.Thread.run(Thread.java:818)\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题是异常消息不显示发生错误的类、方法的名称。
\n我在项目中使用的所有第三方库均在build.gradle.
\n我该如何解决这个问题?

\n

Sma*_*ing 9

问题基本上如下:

buildTypes {
        release {
            **minifyEnabled false**
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果您将 minifyEnabled 设置为 false,它应该可以解决您的问题。如果你想使用 minify 功能,那么你可以将 progaurd 规则添加到你的 build.gradle 中。例如,对于 Butterknife 库,您必须添加以下内容:

-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }

-keepclasseswithmembernames class * {
    @butterknife.* <fields>;
}

-keepclasseswithmembernames class * {
    @butterknife.* <methods>;
}
Run Code Online (Sandbox Code Playgroud)

很高兴我能帮上忙