java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation [英] java.lang.NoClassDefFoundError: org.apache.batik.dom.svg.SVGDOMImplementation

查看:847
本文介绍了java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将Apache Batik库链接到我的Android& LibGDX项目时遇到了奇怪的麻烦.

I'm having weird trouble with Apache Batik library linked to my Android&LibGDX project.

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

But let's start from beginning, in IntelliJ Idea I have a project which contains three modules: Main, Android and Desktop.

蜡染"库包含:

并且在Android& Desktop模块中使用的主要"模块中有一些代码:

And there is some code in "Main" module which is used in Android&Desktop modules:

    String parser = XMLResourceDescriptor.getXMLParserClassName();
    SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(parser);

以下代码用于获取SVG文档的宽度和高度,但是仅在Android上调用SAXSVGDocumentFactory的构造函数会引发异常.台式机版本没有问题,该版本可以毫无问题地运行:

Following code is used to get SVG document's width and height, but calling SAXSVGDocumentFactory's constructor throws an exception only on Android. There is no problem on Desktop version which runs without any problems:

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)

dalcat在Logcat中也有很多消息,它们与org.apache.batik.dom.*类相关,据我所知,它们包含在batik-svg-dom.jar中:

There are also a lot of messages in Logcat send by dalvik and related to org.apache.batik.dom.* classes, which as far as I see are included in 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)

此外,关于make的警告也很多:

Also, there are a lot of warnings on make:

是什么原因导致此问题?

What causes this problem?

推荐答案

Batik使用Java2D API,该API在Android上不可用.您需要使用其他库.

Batik uses Java2D API, which is unavailable on Android. You need to use another library.

这篇关于java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆