Java Eclipse-dalvik链接';两台发动机';类在android上失败,但在桌面上工作

Java Eclipse-dalvik链接';两台发动机';类在android上失败,但在桌面上工作,java,android,exception,libgdx,tween,Java,Android,Exception,Libgdx,Tween,我正在为android和台式PC使用libGDX创建一个游戏。对于过渡屏幕,我正在使用Universal Tween engine。桌面版本运行得很好,但每当我尝试运行android版本时,我都会遇到一个致命异常。对于SpriteTween类,异常出现为NoClassDefFound,但它存在,并在我的桌面游戏中成功检测到 03-03 11:04:17.192: I/System.out(21831): TOUCHED 03-03 11:04:19.264: I/System.out(21831

我正在为android和台式PC使用
libGDX
创建一个游戏。对于过渡屏幕,我正在使用
Universal Tween engine
。桌面版本运行得很好,但每当我尝试运行android版本时,我都会遇到一个
致命异常
。对于
SpriteTween
类,异常出现为
NoClassDefFound
,但它存在,并在我的桌面游戏中成功检测到

03-03 11:04:17.192: I/System.out(21831): TOUCHED
03-03 11:04:19.264: I/System.out(21831): Click: Level2
03-03 11:04:19.264: I/dalvikvm(21831): Could not find method aurelienribon.tweenengine.TweenManager.update, referenced from method com.DC.my_packet_journey.TransitionScreen2.render
03-03 11:04:19.264: W/dalvikvm(21831): VFY: unable to resolve virtual method 241: Laurelienribon/tweenengine/TweenManager;.update (F)V
03-03 11:04:19.264: D/dalvikvm(21831): VFY: replacing opcode 0x6e at 0x0011
03-03 11:04:19.264: I/dalvikvm(21831): Failed resolving Lcom/DC/my_packet_journey/SpriteTween; interface 88 'Laurelienribon/tweenengine/TweenAccessor;'
03-03 11:04:19.264: W/dalvikvm(21831): Link of class 'Lcom/DC/my_packet_journey/SpriteTween;' failed
03-03 11:04:19.264: E/dalvikvm(21831): Could not find class 'com.DC.my_packet_journey.SpriteTween', referenced from method com.DC.my_packet_journey.TransitionScreen2.show
03-03 11:04:19.264: W/dalvikvm(21831): VFY: unable to resolve new-instance 127 (Lcom/DC/my_packet_journey/SpriteTween;) in Lcom/DC/my_packet_journey/TransitionScreen2;
03-03 11:04:19.264: D/dalvikvm(21831): VFY: replacing opcode 0x22 at 0x004a
03-03 11:04:19.264: I/dalvikvm(21831): Failed resolving Lcom/DC/my_packet_journey/SpriteTween; interface 88 'Laurelienribon/tweenengine/TweenAccessor;'
03-03 11:04:19.264: W/dalvikvm(21831): Link of class 'Lcom/DC/my_packet_journey/SpriteTween;' failed
03-03 11:04:19.264: D/dalvikvm(21831): DexOpt: unable to opt direct call 0x01f2 at 0x4c in Lcom/DC/my_packet_journey/TransitionScreen2;.show
03-03 11:04:19.274: D/dalvikvm(21831): DexOpt: unable to opt direct call 0x00f0 at 0x54 in Lcom/DC/my_packet_journey/TransitionScreen2;.show
03-03 11:04:19.274: I/dalvikvm(21831): Failed resolving Lcom/DC/my_packet_journey/TransitionScreen2$1; interface 89 'Laurelienribon/tweenengine/TweenCallback;'
03-03 11:04:19.274: W/dalvikvm(21831): Link of class 'Lcom/DC/my_packet_journey/TransitionScreen2$1;' failed
03-03 11:04:19.274: D/dalvikvm(21831): DexOpt: unable to opt direct call 0x0261 at 0x5b in Lcom/DC/my_packet_journey/TransitionScreen2;.show
03-03 11:04:19.274: I/dalvikvm(21831): DexOpt: unable to optimize static field ref 0x000b at 0x6a in Lcom/DC/my_packet_journey/TransitionScreen2;.show
03-03 11:04:19.304: W/dalvikvm(21831): threadid=11: thread exiting with uncaught exception (group=0x41dfe8b0)
03-03 10:35:23.918: E/AndroidRuntime(20079): FATAL EXCEPTION: GLThread 14763
03-03 10:35:23.918: E/AndroidRuntime(20079): java.lang.NoClassDefFoundError: com.DC.my_packet_journey.SpriteTween
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.DC.my_packet_journey.TransitionScreen5.show(TransitionScreen5.java:67)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.badlogic.gdx.Game.setScreen(Game.java:62)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.DC.my_packet_journey.PagedScrollPaneTest$1.clicked(PagedScrollPaneTest.java:226)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:84)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:57)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:343)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.badlogic.gdx.backends.android.AndroidInput.processEvents(AndroidInput.java:360)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:498)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
03-03 10:35:23.918: E/AndroidRuntime(20079):    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
LibGDX对两个版本使用相同的基本代码。因此,从技术上讲,如果桌面版本可以工作,android版本也应该可以工作

我已经从logCat中添加了更多的条目,我想这一切都是由于未能链接SpriteTween类造成的。为什么这只发生在android上?

我提到了这个问题。事实证明,在我的android项目buildpath>order&export中,
Android4.0.3
标记未选中。通过勾选那个方框,我的问题就解决了

就像前面提到的
stuntmania
一样,问题不在于tween引擎,而在于我的构建路径。dalvik机器未能检测到适当的库,因此只有android版本无法工作,而桌面版本运行正常


这不应该发生。您是否使用适当的库导出?你在项目中复制粘贴库了吗?我还没有导出它,我只是在我的设备上运行它来检查它是否工作。我已经在生成路径中添加了库,但我没有将它们复制粘贴到我的项目文件夹中。那可能是你的问题。我要做的是在我的项目中创建一个名为libs的文件夹,并在其中复制粘贴我的所有库。然后,当我创建构建路径时,我引用项目中的库。但一旦出口,我不认为有什么区别。我只是想把它扔出去。好吧,我试试你的方法,看看是否可行works@stuntmania对不起,但它不起作用。我仍然得到异常
NoClassDefFound
,但只有在android上。酷!现在就享受编码的乐趣吧:)不错,我也遇到了同样的问题,并且正在努力解决。