Android上POI读取XLS时的java问题
我在一个Android项目中读取带有POI的XLS文件时遇到了一个问题。要阅读该文件,我已完成以下操作:
InputStream is = null;
try {
is = getInstrumentation().getContext().getAssets().open("abc.xlsx");
} catch (IOException e) {
}
这解决了读取问题,但现在我面临另一个与此代码有关的问题:
XSSFWorkbook workbook = new XSSFWorkbook(is);
XSSFSheet sheet = workbook.getSheetAt(0);
这给了我以下错误:
java.lang.NoClassDefFoundError: org.apache.poi.xssf.usermodel.XSSFWorkbook
at com.evernote.test.Xls_Reader.<init>(Xls_Reader.java:36)
at com.evernote.test.Main.readTestCaseXls(Main.java:87)
at com.evernote.test.Main.testCreateAccount(Main.java:62)
at java.lang.reflect.Method.invokeNative(Native Method)
at 安卓.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at 安卓.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at 安卓.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at 安卓.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at 安卓.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at 安卓.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at 安卓.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
我已经包含了所有必要的POI库,这些库在Java项目中运行良好。问题在于Android项目
我在project中添加了这个罐子->;房地产->;Javabuild路径->;添加外部罐子。我已经包括了以下jar poi-scratchpad-3.9-20121203、poi-ooxml-schemas-3.9-20121203、poi-ooxml-3.9-20121203、poi-ooxml-3.9、poi-Excellant-3.9-20121203、poi-examples-3.9-20121203、poi-3.9-20121203、,为了订购和导出,我没有检查poi-ooxml-schemas-3.9-20121203 jar。如果我检查了这个,那么它会给出错误{Dx难以写入输出:方法太多:66024;最大值是65536。按包:13 java.lang 1 java.lang.reflect}
谢谢
# 1 楼答案
请注意,在Android上使用Apache POI时,可能会遇到许多问题。在较新版本的安卓系统中,使用名为“multiDex”的功能可以避免太多方法的错误
目前有两个项目试图为您解决大部分问题:
第一个版本目前基于POI 3.12,而第二个版本可以更容易地用较新版本的POI重新编译