Ich weiß, dass diese Frage von vielen zuvor gefragt wurde, aber ich habe versucht, die Lösung in den meisten Posts, aber immer noch vor dem Problem.Android POI Plugin sagt Duplikate Dateien in APK-META-INF
Ich möchte Excel (xlsx) Datei in Android App lesen. Ich habe Dateien POI jar heruntergeladen und hinzugefügt, um es zu lib Ordner und fügte hinzu, es auch als Abhängigkeit [1.poi-3.7.jar 2.poi-OOXML-3.7.jar]
Zuerst habe ich diesen Fehler habe: -
Duplicate files copied in APK META-INF/notice.txt
ich diesen Link gefunden Click here to view
Und durch diesen Code in Abhängigkeit Hinzufügen es dieses Problem gelöst
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/RELEASE_NOTES.txt';
exclude 'META-INF/ASL2.0'
}
Aber dann Fehler zur Laufzeit ist immer
FATAL EXCEPTION: main
Process: com.pixelmagnus.systemteq, PID: 12872
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/xmlbeans/XmlOptions;
at org.apache.poi.POIXMLDocumentPart.<clinit>(POIXMLDocumentPart.java:44)
at com.pixelmagnus.systemteq.MainActivity.loadConfiguration(MainActivity.java:68)
at com.pixelmagnus.systemteq.MainActivity.requestMultiplePermissions(MainActivity.java:55)
at com.pixelmagnus.systemteq.MainActivity.onCreate(MainActivity.java:35)
at android.app.Activity.performCreate(Activity.java:6285)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.xmlbeans.XmlOptions" on path: DexPathList[[zip file "/data/app/com.pixelmagnus.systemteq-2/base.apk"],nativeLibraryDirectories=[/data/app/com.pixelmagnus.systemteq-2/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at org.apache.poi.POIXMLDocumentPart.<clinit>(POIXMLDocumentPart.java:44)
at com.pixelmagnus.systemteq.MainActivity.loadConfiguration(MainActivity.java:68)
at com.pixelmagnus.systemteq.MainActivity.requestMultiplePermissions(MainActivity.java:55)
at com.pixelmagnus.systemteq.MainActivity.onCreate(MainActivity.java:35)
at android.app.Activity.performCreate(Activity.java:6285)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Suppressed: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlOptions
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 17 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
XSSFWorkbook - Diese Klasse über Fehler wirft.
-Code ist unten geben: -
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/systemteqconfig";
String imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/systemteqconfig/images";
File headingService = new File(path, "headingservice.xlsx");
FileInputStream fis = new FileInputStream(headingService);
XSSFWorkbook work_book = new XSSFWorkbook(fis);
XSSFSheet sheet = work_book.getSheetAt(0);
Iterator<Row> row = sheet.rowIterator();
int i = 0;
while(row.hasNext()){
if(i!=0){
XSSFRow content = (XSSFRow)row.next();
HashMap<String,String> hm = new HashMap<String,String>();
hm.put("name",content.getCell(0).getStringCellValue());
hm.put("english",content.getCell(1).getStringCellValue());
hm.put("image",imagePath+"/"+content.getCell(2).getStringCellValue());
hm.put("request",content.getCell(3).getStringCellValue());
hm.put("response_one",content.getCell(4).getStringCellValue());
hm.put("response_two",content.getCell(5).getStringCellValue());
hm.put("active_color",content.getCell(6).getStringCellValue());
hm.put("dutch",content.getCell(7).getStringCellValue());
hm.put("french",content.getCell(8).getStringCellValue());
hm.put("spanish",content.getCell(9).getStringCellValue());
hm.put("portuguese",content.getCell(10).getStringCellValue());
hm.put("polish",content.getCell(11).getStringCellValue());
hm.put("chinese",content.getCell(12).getStringCellValue());
hm.put("japanese",content.getCell(13).getStringCellValue());
hm.put("arabic",content.getCell(14).getStringCellValue());
headingContent.add(hm);
}
i++;
}
headingServicesController hs = new headingServicesController(this);
hs.addHeadingServices(headingContent);
ArrayList<HashMap<String, String>> temp = hs.getHeadingService();
Log.d("CHECKING",temp.toString());
Und nach einigen Recherchen fand ich, dass dieser Fehler ausgelöst wird, wenn eine Datei in der Kompilierung gefunden wird, aber nicht zur Laufzeit gefunden. Obwohl ich mir nicht sicher bin, kann mir irgendjemand sagen, was hier falsch läuft.
Warum verwenden Sie so eine alte Version von Apache POI? Was passiert beim Upgrade? – Gagravarr
ohh sorry @Gagravarr ist dies die alte Version? Ich dachte, das ist die neueste Version. Okay, aber was immer es ist, bitte gib mir einen Hinweis, warum ich diesen Fehler bekomme. und Entschuldigung für die verspätete Antwort. – RKD
Wenn Sie auf der [Apache POI-Homepage] (http://poi.apache.org/) oder auf der [Download-Seite] (http://poi.apache.org/download.html) navigieren, werden Sie feststellen, dass dies die letzte ist Version ist derzeit 3.15 Beta 1. Probiere das aus und melde dich zurück, wenn du noch Probleme hast! – Gagravarr