2013-05-07 57 views
3

我是LibGDX和Android的新手。 Btw抱歉我的英语不好。Tween.registerAccessor NoClassDefFoundError

这是我的问题。我只是想用libgdx做一个启动画面,我在YouTube上观看了Dustin Riley的libGDX教程。但我的代码不起作用,这里是关于错误的LogCat。

05-07 11:05:19.004: E/AndroidRuntime(838): FATAL EXCEPTION: GLThread 
05-07 11:05:19.004: E/AndroidRuntime(838): java.lang.NoClassDefFoundError: com.me.secondGame.tween.SpriteTween 
05-07 11:05:19.004: E/AndroidRuntime(838): at com.me.secondGame.screens.SplashScreen.show(SplashScreen.java:57) 
05-07 11:05:19.004: E/AndroidRuntime(838): at com.badlogic.gdx.Game.setScreen(Game.java:62) 
05-07 11:05:19.004: E/AndroidRuntime(838): at com.me.secondGame.secondGame.create(secondGame.java:10) 
05-07 11:05:19.004: E/AndroidRuntime(838): at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292) 
05-07 11:05:19.004: E/AndroidRuntime(838): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.guardedRun(GLSurfaceViewCupcake.java:708) 
05-07 11:05:19.004: E/AndroidRuntime(838): at com.badlogic.gdx.backends.android.surfaceview.GLSurfaceViewCupcake$GLThread.run(GLSurfaceViewCupcake.java:646) 

首先,我写了代码,这是没有任何问题的工作。但我添加了一些补间代码,现在它不工作。

这里添加代码

Tween.registerAccessor(Sprite.class, new SpriteTween()); //MY ERROR ON HERE 

manager = new TweenManager(); 

Tween.to(splashSprite, SpriteTween.ALPHA, 2f).target(1).ease(TweenEquations.easeInQuad).start(manager); 

我想有一个逻辑错误。因为没有错误输出。

和我的SpriteTween代码。

package com.me.secondGame.tween; 

import com.badlogic.gdx.graphics.g2d.Sprite; 
import aurelienribon.tweenengine.TweenAccessor; 

public class SpriteTween implements TweenAccessor<Sprite> { 
    public static final int ALPHA = 1; 

    @Override 
    public int getValues(Sprite target, int tweenType, float[] returnValues) { 
     switch (tweenType) { 
     case ALPHA: 
      returnValues[0] = target.getColor().a; 
      return 1; 
     default: 
      return 0; 
     } 
    } 

    @Override 
    public void setValues(Sprite target, int tweenType, float[] newValues) { 
     switch (tweenType) { 
     case ALPHA: 
      target.setColor(1, 1, 1, newValues[0]); 
      break; 
     } 
    } 
} 

我无法把什么问题,现在我的头便要炸毁。

编辑:

后贵厂的帖子中,我创建了新的项目,导游说。顺便说一句,我再次看了教程。

非常感谢。

+0

您是否按照libGDX的google代码页中的'android project setup'中的步骤操作?链接:https://code.google.com/p/libgdx/wiki/ProjectSetup – Guian 2013-05-07 11:16:40

+0

或者,可能还有另一种情况与我的项目类似。以下是为什么在基于Android LibGDX的游戏的补间引擎上出现“NoClassDefFoundError”的有趣部分:当您在桌面启动器上运行它时,补间引擎可以正常工作;但是,当您在Android启动器上运行它时,它不起作用。 – 2013-06-18 02:16:23

回答

8

如果在编译期间发现类但在运行时找不到类,则会发生此类错误。

您需要检查Tween .jar文件是否已正确包含在您的类路径中并打包到您的APK中。

仔细检查在libGDX的google代码页中看到的Android Project Setup包含过程。

例如,“libs”文件夹必须被称为'libs',而不是'lib',也没有其他任何东西被正确地包含在APK中。吐温引擎.jar文件必须位于此目录中。仅在Eclipse“Java Build Path”中拥有.jar文件是不够的。

更多关于这个话题可以被读取:NoClassDefFoundError in Java

+0

感谢您的建议。现在我在学校,当我在家时,我会尝试解决方案。 – Utku 2013-05-07 15:44:35

+0

男人,你救了我的一天。谢谢! :d – thekucays 2015-09-21 14:53:44

1

我没有这一点,一切顺利:

拖动从文件夹中的补间引擎罐子到项目中,右键点击它,“添加库” ,请选择android