我的应用程序安装在模拟器中,但抛出错误:不幸的是AppNAME已停止

时间:2013-11-13 12:46:45

标签: android cordova android-emulator

我正在使用Phonegap和Cordova构建应用程序。当我在Eclipse模拟器中运行应用程序时, apk 成功安装,但点击后我收到一条警告说“不幸AppName已停止”任何指导或建议来解决这个问题问题会很好,谢谢。

控制台:

[2013-11-13 12:18:47 - Challenger] Dx 
trouble writing output: already prepared
[2013-11-13 12:18:48 - Challenger] ------------------------------
[2013-11-13 12:18:48 - Challenger] Android Launch!
[2013-11-13 12:18:48 - Challenger] adb is running normally.
[2013-11-13 12:18:48 - Challenger] Performing com.disciplinexgames.DisciplineXgames.Challenger activity launch
[2013-11-13 12:18:48 - Challenger] Automatic Target Mode: launching new emulator with compatible AVD 'testDevice'
[2013-11-13 12:18:48 - Challenger] Launching a new emulator with Virtual Device 'testDevice'
[2013-11-13 12:18:57 - Challenger] New emulator found: emulator-5554
[2013-11-13 12:18:57 - Challenger] Waiting for HOME ('android.process.acore') to be launched...
[2013-11-13 12:19:55 - Challenger] HOME is up on device 'emulator-5554'
[2013-11-13 12:19:55 - Challenger] Uploading Challenger.apk onto device 'emulator-5554'
[2013-11-13 12:20:09 - Challenger] Installing Challenger.apk...
[2013-11-13 12:21:33 - Challenger] Success!
[2013-11-13 12:21:33 - Challenger] Starting activity com.disciplinexgames.DisciplineXgames.Challenger on device emulator-5554
[2013-11-13 12:21:34 - Challenger] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.disciplinexgames.DisciplineXgames/.Challenger }

logcat的:

11-13 07:21:36.140: D/AndroidRuntime(837): Shutting down VM
11-13 07:21:36.140: W/dalvikvm(837): threadid=1: thread exiting with uncaught exception (group=0x41465700)
11-13 07:21:36.150: E/AndroidRuntime(837): FATAL EXCEPTION: main
11-13 07:21:36.150: E/AndroidRuntime(837): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.disciplinexgames.DisciplineXgames/com.disciplinexgames.DisciplineXgames.Challenger}: java.lang.ClassNotFoundException: Didn't find class "com.disciplinexgames.DisciplineXgames.Challenger" on path: DexPathList[[zip file "/data/app/com.disciplinexgames.DisciplineXgames-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.disciplinexgames.DisciplineXgames-1, /system/lib]]
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.os.Looper.loop(Looper.java:137)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.ActivityThread.main(ActivityThread.java:5103)
11-13 07:21:36.150: E/AndroidRuntime(837):  at java.lang.reflect.Method.invokeNative(Native Method)
11-13 07:21:36.150: E/AndroidRuntime(837):  at java.lang.reflect.Method.invoke(Method.java:525)
11-13 07:21:36.150: E/AndroidRuntime(837):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-13 07:21:36.150: E/AndroidRuntime(837):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-13 07:21:36.150: E/AndroidRuntime(837):  at dalvik.system.NativeStart.main(Native Method)
11-13 07:21:36.150: E/AndroidRuntime(837): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.disciplinexgames.DisciplineXgames.Challenger" on path: DexPathList[[zip file "/data/app/com.disciplinexgames.DisciplineXgames-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.disciplinexgames.DisciplineXgames-1, /system/lib]]
11-13 07:21:36.150: E/AndroidRuntime(837):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
11-13 07:21:36.150: E/AndroidRuntime(837):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
11-13 07:21:36.150: E/AndroidRuntime(837):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
11-13 07:21:36.150: E/AndroidRuntime(837):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
11-13 07:21:36.150: E/AndroidRuntime(837):  ... 11 more

的AndroidManifest.xml

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0.0" android:windowSoftInputMode="adjustPan" package="com.disciplinexgames.DisciplineXgames" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="Challenger" android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" />
</manifest>

4 个答案:

答案 0 :(得分:0)

ClassNotFoundException的。您的应用无法找到您的课程。检查你的所有java文件一次。或发布您的清单文件。

答案 1 :(得分:0)

尝试转到Project - &gt;属性 - &gt; Java构建路径 - &gt;订单&amp;导出并确保为您的项目和您正在使用的所有其他库项目检查Android私有库。之后清理所有项目,看看会发生什么。

答案 2 :(得分:0)

单击按钮时是否显示错误?

答案 3 :(得分:0)

尽量避免在包名中混合使用大写和小写名称,这样做很麻烦。特别是如果你在Windows机器上开发。

因此,通过重命名package-directory并替换项目的每个文件中的packagename,而不是package-name com.disciplinexgames.DisciplineXgames使用com.disciplinexgames.disciplinexgames。