2

我最近从使用我的应用程序的用户中发现了以下异常,有人遇到过这种异常吗?

编辑:这是一个已确认的错误

这是堆栈跟踪:

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)
4

1 回答 1

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
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。确认并告诉我

于 2013-02-27T17:37:54.503 回答