android - java.lang.IllegalArgumentException : Receiver not registered: android. 支持.v7.app.AppCompatDelegateImplV14$AutoNightModeManager$1

标签 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(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)

作为这里问题的信息,我使用的唯一 BroadcastReceiver:

    <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);
        }
    }

}

最佳答案

好的,所以有两件事。第一,您是否在代码中的任何位置调用了 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

试试这个。

关于android - java.lang.IllegalArgumentException : Receiver not registered: android. 支持.v7.app.AppCompatDelegateImplV14$AutoNightModeManager$1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39575062/

相关文章:

Android AsyncTask 最佳实践/设计模式?

java - 为什么我的应用程序无法从我的 API 读取 JSON?

android - 在 Chrome for Android 上停用 "fullscreen"模式

android - 下方带有水平进度条的工具栏

java - 获取 Android Spinner 焦点的最佳方式

java - 按 currentDate 从 sqlDB 中选择数据

android - 编译 “com.android.support:appcompat-v7:23.0.1”有什么用?

android - appcompat_v7 : Error retrieving parent for item: No resource found that matches the given name

android - ActionBarCompat 显示溢出菜单中的每个操作

android - 无法应用AppCompatActivity中的setSupportActionBar(androidx.appcompat.widget.Toolbar)