java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation,java,android,libgdx,dalvik,batik,Java,Android,Libgdx,Dalvik,Batik,我在使用链接到我的Android和LibGDX项目的Apache Batik库时遇到了奇怪的问题 但让我们从头开始,在IntelliJ Idea中,我有一个包含三个模块的项目:Main、Android和Desktop 我突出显示的“蜡染”库包含: 在Android和桌面模块中使用的“主”模块中有一些代码: String parser = XMLResourceDescriptor.getXMLParserClassName(); SAXSVGDocumentFactory f

我在使用链接到我的Android和LibGDX项目的Apache Batik库时遇到了奇怪的问题

但让我们从头开始,在IntelliJ Idea中,我有一个包含三个模块的项目:Main、Android和Desktop

我突出显示的“蜡染”库包含:

在Android和桌面模块中使用的“主”模块中有一些代码:

    String parser = XMLResourceDescriptor.getXMLParserClassName();
    SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(parser);
下面的代码用于获取SVG文档的宽度和高度,但调用SAXSVGDocumentFactory的构造函数只会在Android上引发异常。运行时没有任何问题的桌面版本没有问题:

03-17 18:23:46.928: ERROR/AndroidRuntime(1517): FATAL EXCEPTION: GLThread 17
        java.lang.NoClassDefFoundError: org.apache.batik.dom.svg.SVGDOMImplementation
        at org.apache.batik.dom.svg.SAXSVGDocumentFactory.<init>(SAXSVGDocumentFactory.java:111)
        at com.revicostudio.gra.GraRenderer.getDocumentWidthAndHeight(GraRenderer.java:103)
        at com.revicostudio.gra.GraRenderer.renderSvgToTexture(GraRenderer.java:66)
        at com.revicostudio.gra.GraRenderer.render(GraRenderer.java:59)
        at com.revicostudio.gra.GraScreen.render(GraScreen.java:31)
        at com.badlogic.gdx.Game.render(Game.java:46)
        at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:499)
        at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
        at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
03-17 18:23:46.928:错误/AndroidRuntime(1517):致命异常:GLThread 17
java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation
位于org.apache.batik.dom.svg.SAXSVGDocumentFactory(SAXSVGDocumentFactory.java:111)
位于com.revicostudio.gra.GraRenderer.getDocumentWidthAndHeight(GraRenderer.java:103)
位于com.revicostudio.gra.GraRenderer.renderSvgToTexture(GraRenderer.java:66)
位于com.revicostudio.gra.GraRenderer.render(GraRenderer.java:59)
位于com.revicostudio.gra.GraScreen.render(GraScreen.java:31)
位于com.badlogic.gdx.Game.render(Game.java:46)
位于com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:499)
位于android.opengl.GLSurfaceView$GLThread.guarderun(GLSurfaceView.java:1462)
在android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
在dalvik发送的Logcat中还有很多与org.apache.batik.dom.*类相关的消息,据我所知,这些类包含在batik-svg-dom.jar中:

03-17 20:26:37.688: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/ExtensibleDOMImplementation; interface 5043 'Lorg/w3c/dom/css/DOMImplementationCSS;'
03-17 20:26:37.688: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/ExtensibleDOMImplementation;' failed
03-17 20:26:37.688: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGDOMImplementation; (2490)
03-17 20:26:37.688: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGDOMImplementation;' failed
03-17 20:26:37.688: INFO/dalvikvm(3632): Could not find method org.apache.batik.dom.svg.SVGDOMImplementation.getDOMImplementation, referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.<init>
03-17 20:26:37.688: WARN/dalvikvm(3632): VFY: unable to resolve static method 21646: Lorg/apache/batik/dom/svg/SVGDOMImplementation;.getDOMImplementation ()Lorg/w3c/dom/DOMImplementation;
03-17 20:26:37.688: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x71 at 0x0000
03-17 20:26:37.688: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/ExtensibleDOMImplementation; interface 5043 'Lorg/w3c/dom/css/DOMImplementationCSS;'
03-17 20:26:37.688: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/ExtensibleDOMImplementation;' failed
03-17 20:26:37.688: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGDOMImplementation; (2490)
03-17 20:26:37.688: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGDOMImplementation;' failed
03-17 20:26:37.688: INFO/dalvikvm(3632): Could not find method org.apache.batik.dom.svg.SVGDOMImplementation.getDOMImplementation, referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.<init>
03-17 20:26:37.688: WARN/dalvikvm(3632): VFY: unable to resolve static method 21646: Lorg/apache/batik/dom/svg/SVGDOMImplementation;.getDOMImplementation ()Lorg/w3c/dom/DOMImplementation;
03-17 20:26:37.688: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x71 at 0x0000
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/AbstractDocument; interface 5227 'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractDocument;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/AbstractStylableDocument; (2467)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractStylableDocument;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGOMDocument; (2485)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGOMDocument;' failed
03-17 20:26:37.698: ERROR/dalvikvm(3632): Could not find class 'org.apache.batik.dom.svg.SVGOMDocument', referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve check-cast 2746 (Lorg/apache/batik/dom/svg/SVGOMDocument;) in Lorg/apache/batik/dom/svg/SAXSVGDocumentFactory;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x1f at 0x0062
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/AbstractDocument; interface 5227 'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractDocument;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/AbstractStylableDocument; (2467)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractStylableDocument;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGOMDocument; (2485)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGOMDocument;' failed
03-17 20:26:37.698: ERROR/dalvikvm(3632): Could not find class 'org.apache.batik.dom.svg.SVGOMDocument', referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve check-cast 2746 (Lorg/apache/batik/dom/svg/SVGOMDocument;) in Lorg/apache/batik/dom/svg/SAXSVGDocumentFactory;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x1f at 0x0013
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/AbstractDocument; interface 5227 'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractDocument;' failed
03-17 20:26:37.698: ERROR/dalvikvm(3632): Could not find class 'org.apache.batik.dom.AbstractDocument', referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve check-cast 2467 (Lorg/apache/batik/dom/AbstractDocument;) in Lorg/apache/batik/dom/svg/SAXSVGDocumentFactory;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x1f at 0x001f
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/AbstractDocument; interface 5227 'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractDocument;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/AbstractStylableDocument; (2467)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractStylableDocument;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGOMDocument; (2485)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGOMDocument;' failed
03-17 20:26:37.698: ERROR/dalvikvm(3632): Could not find class 'org.apache.batik.dom.svg.SVGOMDocument', referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve check-cast 2746 (Lorg/apache/batik/dom/svg/SVGOMDocument;) in Lorg/apache/batik/dom/svg/SAXSVGDocumentFactory;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x1f at 0x0013
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/AbstractDocument; interface 5227 'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/AbstractDocument;' failed
03-17 20:26:37.698: ERROR/dalvikvm(3632): Could not find class 'org.apache.batik.dom.AbstractDocument', referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve check-cast 2467 (Lorg/apache/batik/dom/AbstractDocument;) in Lorg/apache/batik/dom/svg/SAXSVGDocumentFactory;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x1f at 0x001f
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/ExtensibleDOMImplementation; interface 5043 'Lorg/w3c/dom/css/DOMImplementationCSS;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/ExtensibleDOMImplementation;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGDOMImplementation; (2490)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGDOMImplementation;' failed
03-17 20:26:37.698: INFO/dalvikvm(3632): Could not find method org.apache.batik.dom.svg.SVGDOMImplementation.getDOMImplementation, referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.getDOMImplementation
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve static method 21646: Lorg/apache/batik/dom/svg/SVGDOMImplementation;.getDOMImplementation ()Lorg/w3c/dom/DOMImplementation;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x71 at 0x0018
03-17 20:26:37.698: INFO/dalvikvm(3632): Failed resolving Lorg/apache/batik/dom/ExtensibleDOMImplementation; interface 5043 'Lorg/w3c/dom/css/DOMImplementationCSS;'
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/ExtensibleDOMImplementation;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg/SVGDOMImplementation; (2490)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg/SVGDOMImplementation;' failed
03-17 20:26:37.698: WARN/dalvikvm(3632): Unable to resolve superclass of Lorg/apache/batik/dom/svg12/SVG12DOMImplementation; (2676)
03-17 20:26:37.698: WARN/dalvikvm(3632): Link of class 'Lorg/apache/batik/dom/svg12/SVG12DOMImplementation;' failed
03-17 20:26:37.698: INFO/dalvikvm(3632): Could not find method org.apache.batik.dom.svg12.SVG12DOMImplementation.getDOMImplementation, referenced from method org.apache.batik.dom.svg.SAXSVGDocumentFactory.getDOMImplementation
03-17 20:26:37.698: WARN/dalvikvm(3632): VFY: unable to resolve static method 23668: Lorg/apache/batik/dom/svg12/SVG12DOMImplementation;.getDOMImplementation ()Lorg/w3c/dom/DOMImplementation;
03-17 20:26:37.698: DEBUG/dalvikvm(3632): VFY: replacing opcode 0x71 at 0x0025
03-17 20:26:37.728: WARN/dalvikvm(3632): threadid=10: thread exiting with uncaught exception (group=0x313c61f8)
03-1720:26:37.688:INFO/dalvikvm(3632):解析Lorg/apache/batik/dom/extensibledom实现失败;接口5043“Lorg/w3c/dom/css/DOMImplementationCSS;”
03-17 20:26:37.688:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/extensibledominemplementation”的链接失败
03-17 20:26:37.688:WARN/dalvikvm(3632):无法解析Lorg/apache/batik/dom/svg/SVGDOMImplementation的超类;(2490)
03-17 20:26:37.688:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/svg/SVGDOMImplementation”的链接失败
03-17 20:26:37.688:INFO/dalvikvm(3632):找不到方法org.apache.batik.dom.svg.SVGDOMImplementation.getdomplementation,从方法org.apache.batik.dom.svg.SAXSVGDocumentFactory引用。
03-17 20:26:37.688:WARN/dalvikvm(3632):VFY:无法解析静态方法21646:Lorg/apache/batik/dom/svg/SVGDOMImplementation;。getdominimplementation()Lorg/w3c/dom/dominimplementation;
03-17 20:26:37.688:DEBUG/dalvikvm(3632):VFY:在0x0000处替换操作码0x71
03-17 20:26:37.688:INFO/dalvikvm(3632):无法解析Lorg/apache/batik/dom/extensibledom实现;接口5043“Lorg/w3c/dom/css/DOMImplementationCSS;”
03-17 20:26:37.688:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/extensibledominemplementation”的链接失败
03-17 20:26:37.688:WARN/dalvikvm(3632):无法解析Lorg/apache/batik/dom/svg/SVGDOMImplementation的超类;(2490)
03-17 20:26:37.688:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/svg/SVGDOMImplementation”的链接失败
03-17 20:26:37.688:INFO/dalvikvm(3632):找不到方法org.apache.batik.dom.svg.SVGDOMImplementation.getdomplementation,从方法org.apache.batik.dom.svg.SAXSVGDocumentFactory引用。
03-17 20:26:37.688:WARN/dalvikvm(3632):VFY:无法解析静态方法21646:Lorg/apache/batik/dom/svg/SVGDOMImplementation;。getdominimplementation()Lorg/w3c/dom/dominimplementation;
03-17 20:26:37.688:DEBUG/dalvikvm(3632):VFY:在0x0000处替换操作码0x71
03-17 20:26:37.698:INFO/dalvikvm(3632):解析Lorg/apache/batik/dom/AbstractDocument失败;接口5227'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/AbstractDocument”的链接失败
03-17 20:26:37.698:WARN/dalvikvm(3632):无法解析Lorg/apache/batik/dom/AbstractStylableDocument的超类;(2467)
03-17 20:26:37.698:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/AbstractStylableDocument”的链接失败
03-17 20:26:37.698:WARN/dalvikvm(3632):无法解析Lorg/apache/batik/dom/svg/SVGOMDocument的超类;(2485)
03-17 20:26:37.698:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/svg/SVGOMDocument”的链接失败
03-17 20:26:37.698:ERROR/dalvikvm(3632):找不到从org.apache.batik.dom.svg.SVGOMDocument方法org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument引用的类“org.apache.batik.dom.svg.svg”
03-17 20:26:37.698:WARN/dalvikvm(3632):VFY:无法解析Lorg/apache/batik/dom/svg/svggdocument工厂中的check cast 2746(Lorg/apache/batik/dom/svg/saxsvgdocument;);
03-17 20:26:37.698:DEBUG/dalvikvm(3632):VFY:在0x0062处替换操作码0x1f
03-17 20:26:37.698:INFO/dalvikvm(3632):解析Lorg/apache/batik/dom/AbstractDocument失败;接口5227'Lorg/w3c/dom/traversal/DocumentTraversal;'
03-17 20:26:37.698:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/AbstractDocument”的链接失败
03-17 20:26:37.698:WARN/dalvikvm(3632):无法解析Lorg/apache/batik/dom/AbstractStylableDocument的超类;(2467)
03-17 20:26:37.698:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/AbstractStylableDocument”的链接失败
03-17 20:26:37.698:WARN/dalvikvm(3632):无法解析Lorg/apache/batik/dom/svg/SVGOMDocument的超类;(2485)
03-17 20:26:37.698:WARN/dalvikvm(3632):类“Lorg/apache/batik/dom/svg/SVGOMDocument”的链接失败
03-17 20:26:37.698:ERROR/dalvikvm(3632):找不到从org.apache.batik.dom.svg.SVGOMDocument方法org.apache.batik.dom.svg.SAXSVGDocumentFactory.createDocument引用的类“org.apache.batik.dom.svg.svg”
03-17 20:26:37.698:WARN/dalvikvm(3632):VFY:无法解析Lorg/apache/batik/dom/svg/svggdocument;中的check cast 2746(Lorg/apache/batik/dom/svg/saxsvgdocument;)