我最近提出了一个使用我的应用程序的用户的以下异常,有没有人有这种例外?
修改: Confirmed Bug 。
这是stacktrace:
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000000 (has extras) } in maps.z.bz@407c91c8
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:722)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Receiver not registered: maps.z.bz@407c91c8
at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:610)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:822)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
at maps.z.bz.onReceive(Unknown Source)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:709)
... 9 more
java.lang.IllegalArgumentException: Receiver not registered: maps.z.bz@407c91c8
at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:610)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:822)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
at maps.z.bz.onReceive(Unknown Source)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:709)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3701)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
请确认您是否按如下方式编辑了清单文件:
插入元素以包含API密钥作为
的子元素<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="--- your API Key here ---"/>
请记住使用您自己的API密钥替换值。
请注意,您必须在测试中使用调试API密钥(请参阅“为Google Maps Android API v2服务生成调试API密钥”)。然后在发行版APK中替换发行版API密钥(请参阅“为Google Maps Android API v2服务创建和获取API密钥”)。 添加MAPS_RECEIVE。
<permission
android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature"></permission>
<uses-permission
android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/>
其中com.example.androidmapsv2是我的包,请替换为您自己的包名。
添加uses-permission:
<uses-permission
android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission
android:name="android.permission.INTERNET"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
和可选:
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION"/>
指定OpenGL ES 2的使用功能:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
修改强> 你在你的应用程序中使用任何类型的接收器吗?如果是,那么请检查:
然后问题的原因可能在这里:
unregisterReceiver(yourReciever);
如果接收方已经取消注册或未注册,则调用unregisterReceiver会抛出IllegalArgumentException。 确认并告诉我