3

我是 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;
        }
    }
}

我不知道有什么问题,现在我的头要炸了。

编辑:

在贵安的帖子之后,我用指南创建了新项目说。顺便说一句,我又看了一遍教程。

非常感谢。

4

2 回答 2

8

如果在编译时找到类但在运行时找不到类,则会发生这种错误。

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

仔细检查在libGDX 的谷歌代码页中的Android 项目设置中看到的包含过程。

例如,“ libs ”文件夹必须称为“libs”,而不是“lib”或其他任何内容才能正确包含在 APK 中。Tween 引擎.jar文件必须在此目录中。.jar仅在 Eclipse“Java 构建路径”中拥有该文件是不够的。

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

于 2013-05-07T11:28:39.857 回答
1

我这样做了,一切顺利:

将tween引擎jar从文件夹拖到项目中,右键,“添加库”,选择android

于 2015-02-28T18:33:41.747 回答