9

私のアプリはエラー報告に ACRA を使用しており、デバイスからいくつかのエラー レポートを受け取りました: requestCode には下位 16 ビットしか使用できません。数回、私はそれをどこにも呼んでいません。

私はかなり混乱しており、これがユーザーにどのような影響を与えているのか疑問に思っています (興味深いことに、Crash Reports ベータ版ではエラーはまったく表示されません)。

他の誰かがこれに遭遇しますか?

java.lang.RuntimeException: Unable to resume activity {com.myapp/com.myapp.MyActivity}:
java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:957)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
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:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode
at android.support.v4.app.g.startActivityForResult(SourceFile:690)

誰かがこれについて私を助けることができますか?

4

1 に答える 1

14

0xffffRequestCodes は最大(65535)までしか指定できません。したがって、おそらく呼び出しstartActivityForResult(intent, REQUEST_CODE);ておりREQUEST_CODE、65535 よりも大きいです。

ソリューション:

  • リクエストコードを小さくする
  • オーバーライドstartActivityForResultして、より大きなリクエストコードを処理します(これは、ほとんどの場合、切り捨てられるハックや、リクエストコードを境界内にプッシュするためのその他の操作に帰着します)リンクされた回答startActivityForResult(上から)には、あなたの問題であるコードがありますRaghav Sood に出くわしました。
于 2013-02-08T14:05:45.443 に答える