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 android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
必要なすべての POI ライブラリを含めました。これらのライブラリを使用すると、Java プロジェクトで正常に動作します。問題は Android プロジェクトにあります。
この jar を project->properties->Javabuild path->Add external jar に追加しました。以下の jar poi-scratchpad-3.9-20121203、poi-ooxml-schemas-3.9-20121203、poi-ooxml-3.9-20121203、poi-ooxml-3.9、poi-excelant-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}。
ありがとう。