2

最近、私のアプリケーションを使用しているユーザーの 1 人から次のような例外が発生しました。この種の例外が発生した人はいますか?

編集:これは確認済みのバグです。

スタックトレースは次のとおりです。

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 を追加します。

<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 を指定します。

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

編集: アプリで何らかの種類の受信機を使用していますか?はいの場合は、以下を確認してください:

次に、問題の原因は次のとおりです。

unregisterReceiver(yourReciever);

レシーバーがすでに登録解除されているか、登録されていない場合、unregisterReceiver を呼び出すと IllegalArgumentException がスローされます。確認して教えて

于 2013-02-27T17:37:54.503 に答える