从新的谷歌地图V2奇怪的例外 [英] Strange exception from the new google maps v2

查看:154
本文介绍了从新的谷歌地图V2奇怪的例外的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近想出了来自用户的一个是用我的应用程序下面的异常,有没有人有这种异常?

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

下面是堆栈跟踪:

接收广播意向错误{行动= android.net.conn.CONNECTIVITY_CHANGE FLG = 0x10000000处(有群众演员)}在maps.z.bz@407c91c8:

  java.lang.RuntimeException的
    在android.app.LoadedApk $ ReceiverDispatcher $ Args.run(LoadedApk.java:722)
    在android.os.Handler.handleCallback(Handler.java:587)
    在android.os.Handler.dispatchMessage(Handler.java:92)
    在android.os.Looper.loop(Looper.java:123)
    在android.app.ActivityThread.main(ActivityThread.java:3701)
    在java.lang.reflect.Method.invokeNative(本机方法)
    在java.lang.reflect.Method.invoke(Method.java:507)
    在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:862)
    在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
    在dalvik.system.NativeStart.main(本机方法)
    java.lang.IllegalArgumentException异常:由接收器造成未注册:maps.z.bz@407c91c8
    在android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:610)
    在android.app.ContextImpl.unregisterReceiver(ContextImpl.java:822)
    在android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
    在maps.z.bz.onReceive(来源不明)
    在android.app.LoadedApk $ ReceiverDispatcher $ Args.run(LoadedApk.java:709)
    ... 9个
    java.lang.IllegalArgumentException:如果接收器未注册:maps.z.bz@407c91c8
    在android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:610)
    在android.app.ContextImpl.unregisterReceiver(ContextImpl.java:822)
    在android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:331)
    在maps.z.bz.onReceive(来源不明)
    在android.app.LoadedApk $ ReceiverDispatcher $ Args.run(LoadedApk.java:709)
    在android.os.Handler.handleCallback(Handler.java:587)
    在android.os.Handler.dispatchMessage(Handler.java:92)
    在android.os.Looper.loop(Looper.java:123)
    在android.app.ActivityThread.main(ActivityThread.java:3701)
    在java.lang.reflect.Method.invokeNative(本机方法)
    在java.lang.reflect.Method.invoke(Method.java:507)
    在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:862)
    在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
    在dalvik.system.NativeStart.main(本机方法)
 

解决方案

请确认你有编辑你的清单文件如下:

插入元素,包括API密钥作为一个孩子

 <元数据
机器人:名称=com.google.android.maps.v2.API_KEY
机器人:值=---在这里您API密钥---/>
 

请用您自己的API密钥替换值。

请注意,您必须使用调试API密钥(请参阅生成调试API密钥的谷歌地图Android的API V2服务)在您的测试。再搭配版本的API密钥(请参阅创建和获取API密钥的谷歌地图Android的API V2服务)在你的发行版APK替换。     加入MAPS_RECEIVE和。

 <许可
机器人:名称=com.example.androidmapsv2.permission.MAPS_RECEIVE
安卓的ProtectionLevel =签名>< /许可>
<使用,许可
机器人:名称=com.example.androidmapsv2.permission.MAPS_RECEIVE/>
 

在这里com.example.androidmapsv2是我的包,替换为自己的包名。

添加用途,权限:

 <使用,许可
机器人:名称=com.google.android.providers.gsf.permission.READ_GSERVICES/>
<使用,许可
机器人:名称=android.permission.INTERNET对/>
<使用,许可
机器人:名称=android.permission.WRITE_EXTERNAL_STORAG​​E/>
 

和可选的:

 <使用,许可
机器人:名称=android.permission.ACCESS_COARSE_LOCATION/>
<使用,许可
机器人:名称=android.permission.ACCESS_FINE_LOCATION/>
 

指定的OpenGL ES 2的使用特征:

 <使用特征
机器人:glEsVersion =0x00020000
机器人:要求=真/>
 

编辑: 您是否使用任何类型的reciever在你的应用程序,如果是,那么请检查:?

那么问题的原因可能是在这里:

  unregisterReceiver(yourReciever);
 

如果接收方已经注册的或者未注册,然后打电话unregisterReceiver抛出IllegalArgumentException异常。 确认并告诉我

I have recently came up with the following exception from one of the users that is using my application, has anyone got this sort of exception?

Edit: It is a Confirmed Bug.

Here is the 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)

解决方案

Please confirm that have you edited your manifest file as follows:

Insert element to include API key as a child of the

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="--- your API Key here ---"/>

Remember to replace value with your own API Key.

Please notice that you have to use debug API Key (refer to "Generate Debug API Key for Google Maps Android API v2 service") in your testing. And then replace with release API key (refer to "Create and Obtain API Key for Google Maps Android API v2 service") in your release APK. Add and of 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"/>

where com.example.androidmapsv2 is my package, replace with your own package name.

Add 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"/> 

and optional:

<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Specify uses-feature of OpenGL ES 2:

<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/> 

EDIT: Are you using any kind of reciever in your app?If yes then please check:

Then the cause of problem might be here:

unregisterReceiver(yourReciever);

If the receiver was already unregistered or was not registered, then call to unregisterReceiver throws IllegalArgumentException. Confirm and tell me

这篇关于从新的谷歌地图V2奇怪的例外的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆