PhoneGap上的ClassNotFoundException Android入门

Tim*_*imK 3 android cordova

我遵循了PhoneGap Android入门指南.唯一不完全如步骤中描述的那样是我有cordova版本2.1.0.应用程序在我的手机上构建和安装,但在启动后立即提供ClassNotFoundException.

java.lang.RuntimeException:无法实例化活动ComponentInfo {com.example.phonegaptest/com.example.phonegaptest.MainActivity}:java.lang.ClassNotFoundException:com.example.phonegaptest.MainActivity in loader 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>
Run Code Online (Sandbox Code Playgroud)

Tim*_*imK 7

我解决了这个问题,但我不喜欢这个解决方案.我进入了项目的Eclipse Build Path设置,并选中了框以导出项目所依赖的三个jar.这解决了这个问题.然后我开始取消选中它们以确定我真正需要做哪一个,并且在取消选中所有框之后,程序仍然运行.

  • 有时您可以通过重新排序lib导入列表来解决此问题.我用顶部的cordova制作它就可以了.反正很奇怪的解决方案. (2认同)