IllegalArgumentException:接收方未注册

Posted

技术标签:

【中文标题】IllegalArgumentException:接收方未注册【英文标题】:IllegalArgumentException: Receiver not registered 【发布时间】:2011-11-04 04:49:48 【问题描述】:

我正在尝试在第一个屏幕和第二个屏幕上显示横幅广告...当我尝试通过意图返回第一个屏幕时出现以下错误:

11-03 12:01:16.464: ERROR/androidRuntime(1971): java.lang.IllegalArgumentException: Receiver not registered: com.sec.android.ad.ScreenBroadcastReceiver@44f5aff8
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:793)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:814)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at com.sec.android.ad.AdHubView.onDetachedFromWindow(AdHubView.java:981)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.view.View.dispatchDetachedFromWindow(View.java:6033)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1158)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1630)
11-03 12:01:16.464: ERROR/AndroidRuntime(1971):     at android.view.ViewRoot.doDie(ViewRoot.java:2671)

【问题讨论】:

显然BroadcastReceiver没有在系统中注册,所以系统找不到,抛出这个异常。根据你的描述,我猜你是通过代码注册BroadcastReceiver而不是AndroidManifest.xml,所以在屏幕1和屏幕2的生命周期内,你可能无法正确注册和注销。只是我的猜测,你最好在这里发布一些代码。 【参考方案1】:

您的观点似乎有些问题。如果你查看你的堆栈跟踪,有一些导致问题的视图,因此你的应用程序正在崩溃,因此接收器已注册。还要检查它是否在清单或您的活动中注册

【讨论】:

以上是关于IllegalArgumentException:接收方未注册的主要内容,如果未能解决你的问题,请参考以下文章

IllegalArgumentException:无效的列纬度

Retrofit-IllegalArgumentException:意外的 url

引起:java.lang.IllegalArgumentException:属性'driverClassName'不能为空

IllegalArgumentException:接收方未注册

IllegalArgumentException 介绍

java.lang.IllegalArgumentException:基本 URI 不能为空