我使用Android版本19和26进行了测试。大多数人说javax.xml.bind无法在Android上使用,我应该使用另一个库,但是我使用的是无法更改的第三方库。我试图将缺少的sun库添加到一个jar中,但是没有成功。主要的例外是:
javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
我收到以下错误:
org.kapott.hbci.exceptions.HBCI_Exception: Fehler beim Hinzuf�gen des Auftrages UebSEPA1 zum aktuellen Dialog
at org.kapott.hbci.manager.HBCIDialog.addTask(HBCIDialog.java:546)
at org.kapott.hbci.manager.HBCIHandler.addJobToDialog(HBCIHandler.java:412)
at org.kapott.hbci.GV.HBCIJobImpl.addToQueue(HBCIJobImpl.java:1194)
at org.kapott.hbci.GV.HBCIJobImpl.addToQueue(HBCIJobImpl.java:1199)
at org.de.jmg.hbci4android2.Banking.SepaTrans(Banking.java:541)
at org.de.jmg.hbci4android2.activity_Transfer.transfer(activity_Transfer.java:94)
at org.de.jmg.hbci4android2.activity_Transfer.access$600(activity_Transfer.java:19)
at org.de.jmg.hbci4android2.activity_Transfer$1.onClick(activity_Transfer.java:60)
at android.view.View.performClick(View.java:6663)
at android.view.View.performClickInternal(View.java:6635)
at android.view.View.access$3100(View.java:794)
at android.view.View$PerformClick.run(View.java:26199)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Caused by: org.kapott.hbci.exceptions.HBCI_Exception: *** the _sepapain segment for this job can not be created
at org.kapott.hbci.GV.AbstractSEPAGV.createSEPAFromParams(AbstractSEPAGV.java:304)
at org.kapott.hbci.GV.AbstractSEPAGV.verifyConstraints(AbstractSEPAGV.java:348)
at org.kapott.hbci.manager.HBCIDialog.addTask(HBCIDialog.java:496)
... 18 more
Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
- with linked exception:
[java.lang.ClassNotFoundException: Didnt find class "com.sun.xml.internal.bind.v2.ContextFactory" on path: DexPathList[[zip file "/data/app/org.de.jmg.hbci4android2-TC7i85h9QeSMiewwWFm5Pg==/base.apk"],nativeLibraryDirectories=[/data/app/org.de.jmg.hbci4android2-TC7i85h9QeSMiewwWFm5Pg==/lib/arm64, /system/lib64, /product/lib64]]]
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:278)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:421)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
at org.kapott.hbci.GV.generators.AbstractSEPAGenerator.marshal(AbstractSEPAGenerator.java:43)
at org.kapott.hbci.GV.generators.GenUebSEPA00100103.generate(GenUebSEPA00100103.java:151)
at org.kapott.hbci.GV.generators.GenUebSEPA00100103.generate(GenUebSEPA00100103.java:1)
at org.kapott.hbci.GV.AbstractSEPAGV.createSEPAFromParams(AbstractSEPAGV.java:296)
... 20 more
Caused by: java.lang.ClassNotFoundException: Didnt find class "com.sun.xml.internal.bind.v2.ContextFactory" on path: DexPathList[[zip file "/data/app/org.de.jmg.hbci4android2-TC7i85h9QeSMiewwWFm5Pg==/base.apk"],nativeLibraryDirectories=[/data/app/org.de.jmg.hbci4android2-TC7i85h9QeSMiewwWFm5Pg==/lib/arm64, /system/lib64, /product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122)
at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:276)
... 27 more
依赖关系是:
implementation group: 'xerces', name: 'xercesImpl', version: '2.12.0'
implementation 'javax.xml.bind:jaxb-api:2.3.1'
implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.1'
尝试使用此