简体   繁体   中英

Libgdx Android app crashes at launch

I'm creating an app with libgdx for the desktop and for android devices. The app is working fine on the desktop (windows), and also works fine on Ice Cream Sandwich (tested on a Droid DNA, a Nexus 7 and an emulated Nexus One).

However, on a Droid X or on a Gingerbead emulator, the app crashes immediately.

What could cause the app to crash on Gingerbread, but not on ICS?

The error is:

01-27 19:48:43.387: E/AndroidRuntime(687): FATAL EXCEPTION: main
01-27 19:48:43.387: E/AndroidRuntime(687): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ianmarkowitz.superfrenzy/com.ianmarkowitz.superfrenzy.MainActivity}: java.lang.ClassNotFoundException: com.ianmarkowitz.superfrenzy.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.ianmarkowitz.superfrenzy-1.apk]
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.os.Looper.loop(Looper.java:123)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.ActivityThread.main(ActivityThread.java:3683)
01-27 19:48:43.387: E/AndroidRuntime(687):  at java.lang.reflect.Method.invokeNative(Native Method)
01-27 19:48:43.387: E/AndroidRuntime(687):  at java.lang.reflect.Method.invoke(Method.java:507)
01-27 19:48:43.387: E/AndroidRuntime(687):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-27 19:48:43.387: E/AndroidRuntime(687):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-27 19:48:43.387: E/AndroidRuntime(687):  at dalvik.system.NativeStart.main(Native Method)
01-27 19:48:43.387: E/AndroidRuntime(687): Caused by: java.lang.ClassNotFoundException: com.ianmarkowitz.superfrenzy.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.ianmarkowitz.superfrenzy-1.apk]
01-27 19:48:43.387: E/AndroidRuntime(687):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-27 19:48:43.387: E/AndroidRuntime(687):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-27 19:48:43.387: E/AndroidRuntime(687):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-27 19:48:43.387: E/AndroidRuntime(687):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
01-27 19:48:43.387: E/AndroidRuntime(687):  ... 11 more

My android manifest file is:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ianmarkowitz.superfrenzy"
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:installLocation="preferExternal"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MainActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:label="@string/app_name_short"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Are you using any Android APIs from after SDK 10 in com.ianmarkowitz.superfrenzy.MainActivity ? The Dalvik linker will refuse to load MainActivity if it references classes/methods that do not exist.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM