java.lang.NoClassDefFoundError:org.apache.poi.hssf.usermodel.HSSFWorkbook

时间:2017-03-03 09:25:23

标签: android android-studio runtime-error noclassdeffounderror android-proguard

获取第HSSFWorkbook hwb = new HSSFWorkbook();

的错误

下面的logcat stack-trace

W/System.err: java.lang.NoClassDefFoundError: org.apache.poi.hssf.usermodel.HSSFWorkbook
W/System.err:     at com.jd.reg.utils.ExportUtils.exportCustomer(Utils.java:107)
W/System.err:     at com.jd.reg.activity.UpdateActivity.exportCustomer(UpdateActivity.java:111)
W/System.err:     at com.jd.reg.activity.UpdateActivity$4.onClick(UpdateActivity.java:258)
W/System.err:     at android.view.View.performClick(View.java:4212)
W/System.err:     at android.view.View$PerformClick.run(View.java:17476)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:800)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:100)
W/System.err:     at android.os.Looper.loop(Looper.java:194)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5371)
W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err:     at java.lang.reflect.Method.invoke(Method.java:525)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
W/System.err:     at dalvik.system.NativeStart.main(Native Method)

我已经在proguard-project.txt

中添加了以下内容
-dontwarn org.apache.poi.*
-dontwarn org.apache.poi.util.*
-dontwarn org.apache.poi.ss.*
-dontwarn org.apache.poi.ss.util.*
-dontwarn org.apache.poi.ss.format.*
-dontwarn org.apache.poi.hssf.usermodel.*
-dontwarn org.apache.poi.ddf.*
-dontwarn org.apache.poi.common.usermodel.*
-dontwarn org.apache.poi.hpsf.*
-dontwarn org.apache.poi.poifs.*
-dontwarn org.apache.poi.poifs.crypt.*
-dontwarn org.apache.poi.sl.draw.*
-dontwarn org.apache.poi.sl.draw.geom.*
-dontwarn org.apache.poi.sl.draw.binding.*
-dontwarn org.apache.poi.sl.usermodel.*
-dontwarn org.apache.poi.ss.usermodel.*

及以下proguard-rules.pro

-keep class org.** { *; }

以及 -dontwarn

即使在多次重建和重新启动android studio之后仍然出现错误。

我到底错过了什么?

1 个答案:

答案 0 :(得分:0)

将以下规则添加到proguard

(java.util.Comparator<? super T>)
in OrderedFoo cannot be applied to
(java.util.Comparator<T>)