Phonegap应用在运行时崩溃

5
当我尝试从模拟器和物理设备运行我的应用时,它会崩溃,以下是日志:
我使用的是PhoneGap 1.3.0 :)
01-12 14:13:51.742: W/dalvikvm(344): threadid=1: thread exiting with uncaught exception (group=0x40015560)
01-12 14:13:51.791: E/AndroidRuntime(344): FATAL EXCEPTION: main
01-12 14:13:51.791: E/AndroidRuntime(344): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.philipslighting.roadlight/com.philipslighting.roadlight.PhilipsRoadlightFinalActivity}: java.lang.ClassNotFoundException: com.philipslighting.roadlight.PhilipsRoadlightFinalActivity in loader dalvik.system.PathClassLoader[/data/app/com.philipslighting.roadlight-1.apk]
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.os.Looper.loop(Looper.java:123)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.ActivityThread.main(ActivityThread.java:3683)
01-12 14:13:51.791: E/AndroidRuntime(344):  at java.lang.reflect.Method.invokeNative(Native Method)
01-12 14:13:51.791: E/AndroidRuntime(344):  at java.lang.reflect.Method.invoke(Method.java:507)
01-12 14:13:51.791: E/AndroidRuntime(344):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-12 14:13:51.791: E/AndroidRuntime(344):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-12 14:13:51.791: E/AndroidRuntime(344):  at dalvik.system.NativeStart.main(Native Method)
01-12 14:13:51.791: E/AndroidRuntime(344): Caused by: java.lang.ClassNotFoundException: com.philipslighting.roadlight.PhilipsRoadlightFinalActivity in loader dalvik.system.PathClassLoader[/data/app/com.philipslighting.roadlight-1.apk]
01-12 14:13:51.791: E/AndroidRuntime(344):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-12 14:13:51.791: E/AndroidRuntime(344):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-12 14:13:51.791: E/AndroidRuntime(344):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-12 14:13:51.791: E/AndroidRuntime(344):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
01-12 14:13:51.791: E/AndroidRuntime(344):  ... 11 more
01-12 14:13:51.821: W/ActivityManager(61):   Force finishing activity com.philipslighting.roadlight/.PhilipsRoadlightFinalActivity
01-12 14:13:52.341: W/ActivityManager(61): Activity pause timeout for HistoryRecord{4053ec18 com.philipslighting.roadlight/.PhilipsRoadlightFinalActivity}
01-12 14:13:53.151: I/Process(328): Sending signal. PID: 328 SIG: 9
01-12 14:13:53.181: I/ActivityManager(61): Process com.roadlight.philips (pid 328) has died.
01-12 14:13:54.331: I/Process(344): Sending signal. PID: 344 SIG: 9
01-12 14:13:54.371: W/InputManagerService(61): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@405c2d80
01-12 14:13:54.621: I/ActivityManager(61): Process com.philipslighting.roadlight (pid 344) has died.

这是我的Android清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.philipslighting.roadlight"
    android:versionCode="4"
    android:versionName="1.2" >

    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:resizeable="true"
        android:anyDensity="true"
        />

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


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

    <application 
        android:icon="@drawable/icon"
        android:label="@string/app_name">

            <activity
                android:label="@string/app_name" 
                android:name=".activities.MainActivity" 
                android:configChanges="keyboardHidden|orientation">

                    <intent-filter>
                            <action android:name="android.intent.action.MAIN" />
                            <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>

            </activity>
    </application>

</manifest>

您需要在哪个活动标签中导入PhoneGap活动?

提前致谢!


嘿,伙计,你解决了这个问题吗?如果是的话,请告诉我解决方案,因为我也遇到了这个错误。 - himanshu
我在安装新的Eclipse后遇到了同样的问题。感谢Alexender Volkov提供的建议。这是因为我们需要重新链接cordova库。只需通过“配置构建路径”添加jar文件,并在“顺序和导出”选项卡中勾选库即可。非常感谢。 - Ambofx
4个回答

9
如果您使用了这个教程http://phonegap.com/start#android,那么要解决上面的java.lang.ClassNotFoundException问题,您需要在“Order and Export”选项卡中勾选cordova-XXX.jar旁边的复选框,然后在“配置构建路径”中的库选项卡中添加cordova-XXX.jar的依赖项。
当然,android:name="<main class name>"中的主类名也必须正确。

对我也起作用了,不知道为什么之前这个应用程序没有问题,现在为什么会出现上面的错误? - Asaf

5

我正在按照PhoneGap安卓入门指南进行操作。在我的情况下,我创建了一个名为lib的文件夹,而不是libs。这个问题的表现是我必须手动将jar包添加到构建路径中。我将jar包从构建路径中移除,将lib文件夹重命名为libs,然后立即开始工作。


1
在活动中,您导入PhoneGap文件,请检查一下。 并查看您文件夹中的index.html文件。
我认为只需按照以下路径进行操作: http://phonegap.com/start#android 请观看视频,您将找到解决方案。

我已经更新了Q,加入了Android清单文件,请问您能否指导我在清单文件中导入Phonegap活动的位置? - MsjComprendo
如果您正在使用PhoneGap编写简单的基本程序.. 您只需按照上面链接中所示的步骤进行即可。 使用 <activity android:label="@string/app_name" android:name=".MainActivity"> - NovusMobile

-1
        <activity
            android:label="@string/app_name" 
            android:name=".activities.MainActivity" 
            android:configChanges="keyboardHidden|orientation">

                <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
                        <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>

        </activity>

在 'activity' 标签中,你应该提到包名和主类名,看下面的例子:

android:name="com.philipslighting.roadlight.MainActivity"

       <activity
            android:label="@string/app_name" 
            android:name="yourPACKAGEname.MainActivity" 
            android:configChanges="keyboardHidden|orientation">

                <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
                        <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>

        </activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接