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

何が問題なのか理解できず、頭が爆発しそうです。

編集:

Guian の投稿の後、ガイド付きの新しいプロジェクトを作成しました。ところで、チュートリアルをもう一度見ました。

どうもありがとう。

4

2 に答える 2

8

この種のエラーは、コンパイル時に見つかったクラスが実行時に見つからない場合に発生します。

Tween.jarファイルが適切にクラスパスに含まれ、APK にパッケージ化されていることを確認する必要があります。

libGDX の Google コード ページのAndroid プロジェクトのセットアップで表示される組み込みプロセスを再確認してください。

たとえば、「libs」フォルダは「libs」と呼ばれる必要があり、「lib」などではなく、APK に適切に含まれる必要があります。Tween エンジン.jarファイルは、このディレクトリにある必要があります。.jarEclipse の「Java ビルド パス」にファイルを配置するだけでは不十分です。

このトピックの詳細については、Java の NoClassDefFoundError を参照してください。

于 2013-05-07T11:28:39.857 に答える
1

私はこれを行い、すべてうまくいきました:

トゥイーン エンジン jar をフォルダーからプロジェクトにドラッグし、その中で右クリックして [ライブラリを追加] を選択し、android を選択します。

于 2015-02-28T18:33:41.747 に答える