其他分享
首页 > 其他分享> > android – Tween.registerAccessor NoClassDefFoundError

android – Tween.registerAccessor NoClassDefFoundError

作者:互联网

我是LibGDX和Android的新手.对不起我的英语不好.

这是我的问题.我只想用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;
        }
    }
}

我无法解决问题,现在我的头脑会爆炸.

编辑:

在Guian的帖子之后,我和导游一起创建了新项目.顺便说一下,我又看了教程.

非常感谢.

解决方法:

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

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

在libGDX的谷歌代码页中仔细检查Android Project Setup所见的包含过程.

例如,“libs”文件夹必须被称为“libs”,而不是“lib”,也不能被正确地包含在APK中. Tween引擎.jar文件必须位于此目录中.在Eclipse“Java Build Path”中使用.jar文件是不够的.

有关此主题的更多信息,请参阅:NoClassDefFoundError in Java

标签:tween,android,libgdx
来源: https://codeday.me/bug/20190723/1509718.html