未找到广播接收器的Android活动
您好,我正在尝试根据SQL数据库的输入设置通知。当我试图保存输入的数据时,我得到错误警报Receiver Activity Not Found 我最初在舱单上有这个未找到广播接收器的Android活动,android,exception,broadcastreceiver,Android,Exception,Broadcastreceiver,您好,我正在尝试根据SQL数据库的输入设置通知。当我试图保存输入的数据时,我得到错误警报Receiver Activity Not Found 我最初在舱单上有这个 <receiver android:process=":remote" android:name="AlarmReciever"></receiver> 报警接收器类 public class AlarmReciever extends BroadcastReceiver { @Override
<receiver android:process=":remote" android:name="AlarmReciever"></receiver>
报警接收器类
public class AlarmReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationCompat.Builder nb = new NotificationCompat.Builder(context);
nb.setContentTitle("title");
nb.setContentText("message");
nb.setSmallIcon(R.drawable.ic_launcher);
NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
final Intent notificationIntent = new Intent(context, AddCourse.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
final PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
nb.setContentIntent(contentIntent);
Notification notification = nb.getNotification();
nm.notify(0, notification);
}
}
CatLog
11-07 12:51:41.195: E/AndroidRuntime(3927): Uncaught handler: thread main exiting due to uncaught exception
11-07 12:51:41.216: E/AndroidRuntime(3927): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.mycoursetimetable/com.example.mycoursetimetable.AlarmReciever}; have you declared this activity in your AndroidManifest.xml?
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.app.Activity.startActivityForResult(Activity.java:2749)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.app.Activity.startActivity(Activity.java:2855)
11-07 12:51:41.216: E/AndroidRuntime(3927): at com.example.mycoursetimetable.AddCourse.onClick(AddCourse.java:169)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.View.performClick(View.java:2364)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.View.onTouchEvent(View.java:4179)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.widget.TextView.onTouchEvent(TextView.java:6541)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.View.dispatchTouchEvent(View.java:3709)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
11-07 12:51:41.216: E/AndroidRuntime(3927): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
11-07 12:51:41.216: E/AndroidRuntime(3927): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
11-07 12:51:41.216: E/AndroidRuntime(3927): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.os.Handler.dispatchMessage(Handler.java:99)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.os.Looper.loop(Looper.java:123)
11-07 12:51:41.216: E/AndroidRuntime(3927): at android.app.ActivityThread.main(ActivityThread.java:4363)
11-07 12:51:41.216: E/AndroidRuntime(3927): at java.lang.reflect.Method.invokeNative(Native Method)
11-07 12:51:41.216: E/AndroidRuntime(3927): at java.lang.reflect.Method.invoke(Method.java:521)
11-07 12:51:41.216: E/AndroidRuntime(3927): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11-07 12:51:41.216: E/AndroidRuntime(3927): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11-07 12:51:41.216: E/AndroidRuntime(3927): at dalvik.system.NativeStart.main(Native Method)
如果您使用的是广播接收器,则应将其声明为接收器,而不是活动,并且通常应具有与其关联的操作。大概是这样的:
<receiver android:name=".myReceiverName" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.some_action"/>
<data android:scheme="package" android:path="com.blah.mypackage">
</intent-filter>
您正在注册Activity
和BroadcastReceiver
,它们在AndroidManifest.xml
文件中的同一个包中具有相同的名称,因此请使用Activity name而不是BroadcastReceiver类来注册活动
<activity
android:name=".Your_Activity_Name"
android:label="@string/title_activity_user_menu" >
</activity>
尝试此操作,并保持接收者的名称与活动的名称不同
<activity
android:name="com.example.mycoursetimetable.AlarmReciever"
android:label="@string/title_activity_user_menu" >
</activity>
这是我最初遇到的情况,但我仍然收到相同的错误。我尝试了你的建议,但得到了错误:11-08 12:37:23.328:E/AndroidRuntime(227):未捕获处理程序:线程主线程因未捕获异常而退出11-08 12:37:23.348:E/AndroidRuntime(227):java.lang.RuntimeException:无法实例化活动组件信息{com.example.myCourseThedule/com.example.myCourseThedule.AlarmReciever}:java.lang.ClassCastException:com.example.myCourseThedule.AlarmReciev将整个logcat粘贴到pastebin中,并提供链接hereDid您可以得到答案吗?我面临同样的问题。
<activity
android:name=".Your_Activity_Name"
android:label="@string/title_activity_user_menu" >
</activity>
<activity
android:name="com.example.mycoursetimetable.AlarmReciever"
android:label="@string/title_activity_user_menu" >
</activity>