PhoneGap入门Android时出现ClassNotFoundException

3
我按照 PhoneGap Android 入门指南进行了操作。唯一不同的是我的 Cordova 版本是 2.1.0。应用程序在我的手机上构建并安装,但在启动后会出现 ClassNotFoundException 错误。
java.lang.RuntimeException: 无法实例化组件信息 com.example.phonegaptest.MainActivity: java.lang.ClassNotFoundException: com.example.phonegaptest.MainActivity 在加载器 dalvik.system.PathClassLoader[/data/app/com.example.phonegaptest-2.apk] 中
MainActivity 是该应用程序中唯一的类。为什么找不到它呢?
更新: 这是我的清单:
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

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

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" 
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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


你的AndroidManifest.xml长什么样子?问题可能就出在那里。 - Simon MacDonald
2个回答

7
我修复了这个问题,但我不喜欢这个解决方案。我进入了项目的Eclipse构建路径设置,并勾选了导出项目所依赖的三个JAR包。这解决了问题。然后我开始逐个取消勾选以找出真正需要这样做的那个JAR包,但在取消勾选所有JAR包后,程序仍然可以运行。

+1,当我更新我的ADT到v22时,我遇到了这个问题。我的所有phone-gap项目都停止工作了。按照你的建议去做后,我的应用程序又开始工作了,谢谢。 - Nirav Shah
2
有时候你可以通过重新排列库导入列表来解决这个问题。我把 cordova 放在最上面,它就能正常工作了。不过这个解决方案还是挺奇怪的。 - C--
你的解决方案对我也起了作用,但只是部分地。在取消复选框之后,你的应用仍然可以工作,而我的不行。不确定这是否会在未来造成任何问题。 - moshfiqur
将 Cordova jar 文件移动到“Order and Export”中的顶部,这对我解决了问题! - Maffelu

-1

我在升级到v22后也遇到了类似的情况,当我将jar文件添加到构建路径中时,它开始工作了。


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