如何使javax.xml.bind.JAXBContext.newInstance与Android一起使用? [处于保留状态]

问题描述 投票:0回答:1

我使用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'
android javax.xml
1个回答
0
投票

尝试使用此

© www.soinside.com 2019 - 2024. All rights reserved.