【问题标题】:Cannot find class when refrencing from another project从另一个项目引用时找不到类
【发布时间】:2013-08-23 09:45:04
【问题描述】:

我查看了以下我认为可行的方法,但它没有。

Could not find class XXX referenced from method XXX.

Hello world, libgdx crashes on phone

Android Libgx Frogger game crashing: Could not find class 'com.rengelbert.froggergdx.FroggerGame'

我与所有其他问题的主要区别在于,当我创建使用 Gdx-setup.jar 创建的桌面项目时,我没有创建 android 项目。在我创建了桌面版本之后,我决定制作一个 android 项目。

我收到错误:

08-23 05:30:09.341: E/dalvikvm(27497): Could not find class 'com.cvgstudios.pokemonchrome.ChromeGame', referenced from method com.cvgstudios.pokemonchrome.RunAndroidChrome.onCreate
08-23 05:30:09.341: W/dalvikvm(27497): VFY: unable to resolve new-instance 1027 (Lcom/cvgstudios/pokemonchrome/ChromeGame;) in Lcom/cvgstudios/pokemonchrome/RunAndroidChrome;
08-23 05:30:09.341: D/dalvikvm(27497): VFY: replacing opcode 0x22 at 0x0014
08-23 05:30:09.341: D/dalvikvm(27497): DexOpt: unable to opt direct call 0x2a07 at 0x16 in Lcom/cvgstudios/pokemonchrome/RunAndroidChrome;.onCreate
08-23 05:30:09.341: D/dalvikvm(27497): Trying to load lib /data/app-lib/com.cvgstudios.pokemonchrome-1/libgdx.so 0x41a79df0
08-23 05:30:09.349: D/dalvikvm(27497): Added shared lib /data/app-lib/com.cvgstudios.pokemonchrome-1/libgdx.so 0x41a79df0
08-23 05:30:09.349: D/dalvikvm(27497): No JNI_OnLoad found in /data/app-lib/com.cvgstudios.pokemonchrome-1/libgdx.so 0x41a79df0, skipping init
08-23 05:30:09.357: D/AndroidRuntime(27497): Shutting down VM
08-23 05:30:09.357: W/dalvikvm(27497): threadid=1: thread exiting with uncaught exception (group=0x41809700)
08-23 05:30:09.364: E/AndroidRuntime(27497): FATAL EXCEPTION: main
08-23 05:30:09.364: E/AndroidRuntime(27497): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cvgstudios.pokemonchrome/com.cvgstudios.pokemonchrome.RunAndroidChrome}: java.lang.NullPointerException
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.ActivityThread.access$600(ActivityThread.java:153)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.os.Looper.loop(Looper.java:137)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.ActivityThread.main(ActivityThread.java:5289)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at java.lang.reflect.Method.invokeNative(Native Method)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at java.lang.reflect.Method.invoke(Method.java:525)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at dalvik.system.NativeStart.main(Native Method)
08-23 05:30:09.364: E/AndroidRuntime(27497): Caused by: java.lang.NullPointerException
08-23 05:30:09.364: E/AndroidRuntime(27497):    at com.cvgstudios.pokemonchrome.RunAndroidChrome.onCreate(RunAndroidChrome.java:17)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.Activity.performCreate(Activity.java:5133)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
08-23 05:30:09.364: E/AndroidRuntime(27497):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
08-23 05:30:09.364: E/AndroidRuntime(27497):    ... 11 more

如你所见,错误在于

找不到类“com.cvgstudios.pokemonchrome.ChromeGame”, 从方法引用 com.cvgstudios.pokemonchrome.RunAndroidChrome.onCreate

在四处寻找我的困境的答案时,一个可能的解决方案是确保它正确导出主项目。我解决了这个问题:

但问题仍然存在。

我已经检查了所有订单和导出框,在桌面、主和 android 项目的构建路径中。

这是我的课

import android.os.Bundle;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

public class RunAndroidChrome extends AndroidApplication {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = true;

        Gdx.app.log(ChromeGame.LOG,
                "Attempting to make Android Chrome Work");
        initialize(new com.cvgstudios.pokemonchrome.ChromeGame(), cfg);
    }
}

【问题讨论】:

  • 发布你的 RunAndroidChrome 类...
  • 你有没有添加任何新的罐子..??
  • @Dileep:我应该做的所有事情
  • @Exikle buid 路径怎么样..??

标签: java android eclipse cross-platform libgdx


【解决方案1】:

您的班级RunAndroidChrome

中有一个import missing
import com.cvgstudios.pokemonchrome.ChromeGame;

通常IDE会自动导入依赖的类。

如果那不是您定义的类,那么您一定忘记了添加构建路径.. 查看here 了解如何添加构建路径。

另一种可能性是您可能错误地测试了它 机器。

同样在cfg.useGL20 = true; 中,我们告诉 Android 使用 OpenGL ES 2。这意味着我们只能在设备上测试它,因为模拟器不支持 OpenGL ES 2。如果出现问题,请切换这是假的。

查看this链接了解更多信息

【讨论】:

  • 不幸的是它仍然这样做
  • @Exikle 你在哪里测试过它......??
  • @Exikle 看看我的新答案,可能有帮助..!!
猜你喜欢
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
相关资源
最近更新 更多