我的应用程序在AVD上运行时会崩溃。1)通过推送机器人完成所有规定的事情。2) jar文件的添加。3)扩展类但没有用。我的应用程序崩溃了
错误日志是:
07-04 22:25:05.994: E/Trace(628): error opening trace file: No such file or directory (2)
07-04 22:25:06.152: D/AndroidRuntime(628): Shutting down VM
07-04 22:25:06.152: W/dalvikvm(628): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
07-04 22:25:06.172: E/AndroidRuntime(628): FATAL EXCEPTION: main
07-04 22:25:06.172: E/AndroidRuntime(628): java.lang.RuntimeException: Unable to instantiate application com.csconnect: java.lang.ClassNotFoundException: com.csconnect
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.LoadedApk.makeApplication(LoadedApk.java:501)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4124)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.ActivityThread.access$1300(ActivityThread.java:130)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.os.Handler.dispatchMessage(Handler.java:99)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.os.Looper.loop(Looper.java:137)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.ActivityThread.main(ActivityThread.java:4745)
07-04 22:25:06.172: E/AndroidRuntime(628): at java.lang.reflect.Method.invokeNative(Native Method)
07-04 22:25:06.172: E/AndroidRuntime(628): at java.lang.reflect.Method.invoke(Method.java:511)
07-04 22:25:06.172: E/AndroidRuntime(628): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-04 22:25:06.172: E/AndroidRuntime(628): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-04 22:25:06.172: E/AndroidRuntime(628): at dalvik.system.NativeStart.main(Native Method)
07-04 22:25:06.172: E/AndroidRuntime(628): Caused by: java.lang.ClassNotFoundException: com.csconnect
07-04 22:25:06.172: E/AndroidRuntime(628): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-04 22:25:06.172: E/AndroidRuntime(628): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-04 22:25:06.172: E/AndroidRuntime(628): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.Instrumentation.newApplication(Instrumentation.java:967)
07-04 22:25:06.172: E/AndroidRuntime(628): at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
07-04 22:25:06.172: E/AndroidRuntime(628): ... 11 more
清单文件是:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.csconnect"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="20" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<permission android:name="com.csconnect.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.csconnect.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:name="com.csconnect"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.csconnect.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.csconnect.MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.pushbots.push.PBMsg"/>
<activity android:name="com.pushbots.push.PBListener"/>
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<!-- Receives the registration id. -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.csconnect" />
</intent-filter>
</receiver>
<receiver android:name="com.pushbots.push.MsgReceiver" />
<service android:name="com.pushbots.push.GCMIntentService" />
<service android:name="org.openudid.OpenUDID_service" >
<intent-filter>
<action android:name="org.openudid.GETUDID" />
</intent-filter>
</service>
<activity
android:name="com.csconnect.SecondActivity"
android:label="@string/title_activity_second" >
</activity>
<!-- GCM connects to Google Services. -->
</application>
</manifest>
MAINACTIVITY文件是:
package com.csconnect;
import com.pushbots.push.Pushbots;
import android.app.Activity;
public class MainActivity extends Activity {
public String PUSHBOTS_APPLICATION_ID = "---#the application ID#---";
public String SENDER_ID="-----#the sender ID-----#";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Pushbots.init(this, SENDER_ID,PUSHBOTS_APPLICATION_ID);
Button inboxbutton = (Button) findViewById(R.id.button1);
inboxbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this , SecondActivity.class);
startActivity(intent);
}
});
}
}
错误的方式:
右键单击主项目,选择Properties -> Java Build Path -> Projects -> Add...
,这将Android库项目作为依赖项目添加到Android主项目的构建路径中,这不起作用。如果所有所需的android相关资源都在main project中定义,那么在编译时你不会得到任何错误,但是当运行应用程序时,你会得到问题中描述的异常。
正确方法:
右键单击主项目,选择Properties -> Android
,在Library部分,在这里添加你的Android库项目。查看官方开发指南,参考一个库项目。这应该能解决你所有的问题。还需要注意的是,你必须使用相对路径来引用实际的Android库项目,如库项目-开发注意事项中所述。
我也面临同样的问题。我以正确的方式添加了库,但有同样的问题。我的解决方案是将android-support-v4.jar更新为android-support-v13.jar。后来它工作完美!!