我遵循了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>
答案 0 :(得分:7)
我解决了这个问题,但我不喜欢这个解决方案。我进入了项目的Eclipse Build Path设置,并选中了框以导出项目所依赖的三个jar。这解决了这个问题。然后我开始取消选中它们以确定我真正需要做哪一个,并且在取消选中所有框之后,程序仍然运行。
答案 1 :(得分:-1)
我升级到v22之后也面临着类似的情况,当我将jar文件添加到它开始工作的构建路径时