gpt4 book ai didi

java - Android Studio/LibGdx/ fatal error

转载 作者:行者123 更新时间:2023-12-01 11:25:35 24 4
gpt4 key购买 nike

我正在尝试使用 LibGdx 和 Tween 动画引擎开发我的第一个 Android 游戏。但是,如果我尝试在手机上运行它,总是会收到以下错误:

06-14 17:00:43.894  31239-31270/com.joelbrun.jetskirider.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 4726
Process: com.joelbrun.jetskirider.android, PID: 31239
java.lang.NoClassDefFoundError: Failed resolution of: Laurelienribon/tweenengine/TweenManager;
at com.joelbrun.jetskirider.screens.Splash.show(Splash.java:26)
at com.badlogic.gdx.Game.setScreen(Game.java:61)
at com.joelbrun.jetskirider.JetskiRider.create(JetskiRider.java:10)
at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1511)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
Caused by: java.lang.ClassNotFoundException: Didn't find class "aurelienribon.tweenengine.TweenManager" on path: DexPathList[[zip file "/data/app/com.joelbrun.jetskirider.android-2/base.apk"],nativeLibraryDirectories=[/data/app/com.joelbrun.jetskirider.android-2/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
            at com.joelbrun.jetskirider.screens.Splash.show(Splash.java:26)
            at com.badlogic.gdx.Game.setScreen(Game.java:61)
            at com.joelbrun.jetskirider.JetskiRider.create(JetskiRider.java:10)
            at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:241)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1511)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
Suppressed: java.lang.ClassNotFoundException: aurelienribon.tweenengine.TweenManager
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 7 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

类(class):主类(JetskiRider)

package com.joelbrun.jetskirider;

import com.badlogic.gdx.Game;
import com.joelbrun.jetskirider.screens.Splash;

public class JetskiRider extends Game {

@Override
public void create () {
setScreen(new Splash());
}

@Override
public void dispose() {
super.dispose();
}

@Override
public void resume() {
super.resume();
}

@Override
public void resize(int width, int height) {
super.resize(width, height);
}

@Override
public void pause() {
super.pause();
}

@Override
public void render () {
super.render();
}
}

启动画面(启动画面)

package com.joelbrun.jetskirider.screens;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.joelbrun.jetskirider.tween.SpriteAccessor;

import aurelienribon.tweenengine.BaseTween;
import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenCallback;
import aurelienribon.tweenengine.TweenManager;

public class Splash implements Screen {

private SpriteBatch batch;
private Sprite splash;
private TweenManager tweenManager;

@Override
public void show() {
batch = new SpriteBatch();
tweenManager = new TweenManager();
Tween.registerAccessor(Sprite.class, new SpriteAccessor());

Texture splashTexture = new Texture("splash.png");
splash = new Sprite(splashTexture);
splash.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

Tween.set(splash, SpriteAccessor.ALPHA).target(0).start(tweenManager);
Tween.to(splash, SpriteAccessor.ALPHA, 2).target(1).repeatYoyo(1, 2).setCallback(new TweenCallback() {
@Override
public void onEvent(int type, BaseTween<?> source) {
((Game)Gdx.app.getApplicationListener()).setScreen(new MainMenu());
}
}).start(tweenManager);
}

@Override
public void render(float delta) {
Gdx.gl.glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

tweenManager.update(delta);

batch.begin();
splash.draw(batch);
batch.end();
}

@Override
public void resize(int width, int height) {
resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
}

@Override
public void pause() {

}

@Override
public void resume() {

}

@Override
public void hide() {

}

@Override
public void dispose() {
batch.dispose();
splash.getTexture().dispose();
}
}

MainMenu(启动屏幕后的主菜单;尚未完成)

package com.joelbrun.jetskirider.screens;

import com.badlogic.gdx.Screen;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Table;

import javafx.stage.Stage;

public class MainMenu implements Screen {

private Stage stage;
private Table table;
private Label highscore;

@Override
public void show() {

}

@Override
public void render(float delta) {

}

@Override
public void resize(int width, int height) {

}

@Override
public void pause() {

}

@Override
public void resume() {

}

@Override
public void hide() {

}

@Override
public void dispose() {

}
}

Sprite 访问器(用于 Tween 引擎的访问器)

package com.joelbrun.jetskirider.tween;

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

public class SpriteAccessor implements TweenAccessor<Sprite> {

public static final int ALPHA = 0;

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

@Override
public void setValues(Sprite target, int tweenType, float[] newValues) {
switch (tweenType){
case ALPHA:
target.setColor(target.getColor().r, target.getColor().g, target.getColor().b, newValues[0]);
default:
assert false;
}
}
}

最佳答案

编辑你的build.gradle以从存储库加载补间库(可能有更新的版本,我自己的项目可以使用这个):

project(":core") {
apply plugin: "java"

dependencies {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
compile "aurelienribon:tweenengine:6.3.3"
compile "aurelienribon:tweenengine:6.3.3:sources"
}
}

并且您可能需要从 libs 文件夹中删除补间 jar

关于java - Android Studio/LibGdx/ fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com