java.lang.IllegalArgumentException:接收器未注册:android.support.v7.app.AppCompateDelegateImplV14$AutoNightModeManager$1

java.lang.IllegalArgumentException:接收器未注册:android.support.v7.app.AppCompateDelegateImplV14$AutoNightModeManager$1,android,android-appcompat,Android,Android Appcompat,我在一份撞车报告中遇到了一个奇怪的异常,我正在寻找解决办法。appcompat 24.2.1会发生这种情况 java.lang.IllegalArgumentException: Receiver not registered: android.support.v7.app.AppCompatDelegateImplV14$AutoNightModeManager$1@35ab2dd at android.app.LoadedApk.forgetReceiverDispatcher(Loaded

我在一份撞车报告中遇到了一个奇怪的异常,我正在寻找解决办法。appcompat 24.2.1会发生这种情况

java.lang.IllegalArgumentException: Receiver not registered: android.support.v7.app.AppCompatDelegateImplV14$AutoNightModeManager$1@35ab2dd
at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:780)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1195)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:576)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:576)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:576)
at android.support.v7.app.AppCompatDelegateImplV14$AutoNightModeManager.cleanup(SourceFile:345)
at android.support.v7.app.AppCompatDelegateImplV14.onStop(SourceFile:117)
at android.support.v7.app.AppCompatDialog.onStop(SourceFile:119)
at android.app.Dialog.dismissDialog(Dialog.java:369)
at android.app.Dialog.dismiss(Dialog.java:345)
at android.support.v7.app.AlertController$ButtonHandler.handleMessage(SourceFile:161)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:764)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
作为此处问题的信息,我使用的唯一广播接收器:

    <receiver
            android:name=".InstallListener"
            android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER"/>
        </intent-filter>
    </receiver>


public class InstallListener extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String rawReferrerString = intent.getStringExtra("referrer");
        if (rawReferrerString != null) {

            final Intent newIntent = new Intent(context, PassImportActivity.class);
            newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            newIntent.setData(Uri.parse(rawReferrerString));

            context.startActivity(newIntent);
        }
    }

}

公共类InstallListener扩展了BroadcastReceiver{
@凌驾
公共void onReceive(上下文、意图){
String rawrefererString=intent.getStringExtra(“referer”);
if(rawReferrerString!=null){
最终意图newIntent=新意图(上下文,PassImportActivity.class);
newIntent.setFlags(Intent.FLAG\u活动\u新任务);
setData(Uri.parse(rawReferrerString));
背景。起始触觉(newIntent);
}
}
}

好的,有两件事。第一,你在你的代码中的任何地方调用
unregisterReceiver(..)
?如果是这样,请编辑您的原始问题,并显示您在哪里调用该问题

第二件事,在您的
AndroidManifest.xml
中,更改以下内容:

<receiver
    android:name=".InstallListener"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>

为此:

<receiver
    android:name=".InstallListener"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>

注意:
enabled
设置为
true


试试这个。

您使用的是
广播接收器吗?展示您是如何实现它的,以及如何使用它的。这个错误基本上是说你正在试图注销一个尚未注册的接收器。我只使用了一个广播接收器-编辑了我的问题-但怀疑这是罪魁祸首here@ligi你有没有想过?在我们添加了对自动日夜模式的支持后,我在我们的应用程序中看到了这个错误。这里也一样。。。。不知道怎么解决。有人找到解决办法吗?更新到MoPub 5.16.0.no后,我遇到了这个问题-我没有在任何地方调用unregisterReceiver&我认为将enabled设置为true没有用,因为这是默认值。同样,由于我不能重现这个错误,我不能“尝试这个”。如果你不能重现这个错误,那么它就不是一个“错误”。你不应该问这是一个错误-只是不可复制-我认为在这里问这个是正确的