Android ClassNotFoundException:在路径上找不到类:Dexpathlist

Ami*_*dan 0 java eclipse android gradle libgdx

我面临以下错误,我几乎尝试了Stackoverflow的每一个解决方案.我是android的新手,所以我可能不了解原因.我按照说明测试libgdx项目:https: //github.com/libgdx/libgdx/wiki/Setting-up-your-Development-Environment-%28Eclipse%2C-Intellij-IDEA%2C-NetBeans% 29

我按顺序安装了下面提到的工具:

  1. JDK(java版本1.8.0.73)
  2. Eclipse IDE for Java Developers版本:Mars.2发布(4.5.2).
  3. SDK(我有SDK工具24.4.1和SDK构建工具23.0.2和23.0.1)
  4. 来自eclipse中的URL的Eclipse Android开发工具:https://dl-ssl.google.com/android/eclipse/
  5. Gradle 2.11 - 我解压缩gradle-all-2.11.zip并保存在我的本地机器上.

现在,当我使用gdx-setup.jar生成一个非常基本的示例libgdx项目,并将包命名为my-gdx-game时,它创建了一个桌面版(java应用程序)和一个android版本(android应用程序)

我在通过jar构建项目时使用Build工具V 23.0.1.我的eclipse屏幕看起来像这样:

日食 当我右键单击my-gdx-game-desktop和Run as Java应用程序时,它会成功运行并显示和图像(项目就是显示图像).

现在,对于android项目,我创建了一个AVD - Nexus 5,Android 4.4.2(api 19),CPU:ARM(armeabi-v7a),使用主机GPU.我的manifest.xml文件如下:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="23" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/GdxTheme" >
    <activity
        android:name="com.mygdx.game.AndroidLauncher"
        android:label="@string/app_name" 
        android:screenOrientation="landscape"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

项目>属性> Android:仅选择Android 4.4.2(API 19)

现在,当我右键单击项目>运行为> android应用程序时,AVD打开并生成以下错误:

03-08 13:44:35.110: W/dalvikvm(1968): Unable to resolve superclass of Lcom/mygdx/game/AndroidLauncher; (3)
03-08 13:44:35.110: W/dalvikvm(1968): Link of class 'Lcom/mygdx/game/AndroidLauncher;' failed
03-08 13:44:35.110: D/AndroidRuntime(1968): Shutting down VM
03-08 13:44:35.120: W/dalvikvm(1968): threadid=1: thread exiting with uncaught exception (group=0xb1ae4ba8)
03-08 13:44:35.140: E/AndroidRuntime(1968): FATAL EXCEPTION: main
03-08 13:44:35.140: E/AndroidRuntime(1968): Process: com.mygdx.game, PID: 1968
03-08 13:44:35.140: E/AndroidRuntime(1968): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mygdx.game/com.mygdx.game.AndroidLauncher}: java.lang.ClassNotFoundException: Didn't find class "com.mygdx.game.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.mygdx.game-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.mygdx.game-1, /system/lib]]
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.os.Looper.loop(Looper.java:136)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.ActivityThread.main(ActivityThread.java:5001)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at java.lang.reflect.Method.invokeNative(Native Method)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at java.lang.reflect.Method.invoke(Method.java:515)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at dalvik.system.NativeStart.main(Native Method)
03-08 13:44:35.140: E/AndroidRuntime(1968): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mygdx.game.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.mygdx.game-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.mygdx.game-1, /system/lib]]
03-08 13:44:35.140: E/AndroidRuntime(1968):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
03-08 13:44:35.140: E/AndroidRuntime(1968):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)
03-08 13:44:35.140: E/AndroidRuntime(1968):     ... 11 more
03-08 13:49:35.320: I/Process(1968): Sending signal. PID: 1968 SIG: 9
Run Code Online (Sandbox Code Playgroud)

我的项目构建路径

我已经从stackoverflow尝试了很多答案,但似乎没有一个在我的情况下工作.请帮忙.

Ami*_*dan 5

所以现在问题已经解决了.

  1. 现在检查我的项目和外部依赖项.
  2. 我的manifest.xml现在有android:name =".AndroidLauncher".
  3. 将Eclipse java版本更改为1.7对我有用.在Eclipse中,转到Windows-> Preferences-> Java-> Compiler并将"Compiler compliance level"设置为1.7.

第三步是改变我的游戏.谢谢你们的帮助.