我在崩溃报告中遇到了一个奇怪的异常,我正在寻找解决它的方法。 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/