ACRA exception Can only use lower 16 bits for requestCode

荒凉一梦 提交于 2019-12-06 23:07:06

问题


My app uses ACRA for error reporting, and I've got a couple of reports from my device with the error: Can only use lower 16 bits for requestCode.. Google shows this error occurring when using startActivityForResult, but I've searched my code a few times and I"m not calling that anywhere.

I'm pretty confused and am wondering how this is impacting users (interestingly enough, the Crash Reports beta doesn't show any errors at all).

Anyone else run into this?

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)

Can somebody help me on this?


回答1:


RequestCodes can only be a max of 0xffff (65535). So you are probably calling startActivityForResult(intent, REQUEST_CODE); and REQUEST_CODE is greater than 65535.

Solutions:

  • make request code smaller
  • override startActivityForResult to handle your larger request codes (which will mostly come down to a hack that truncates or some other manipulation to push your request code within the bounds) In the linked answer (from above) there is the code in startActivityForResult that is the issue you're running into by Raghav Sood.


来源:https://stackoverflow.com/questions/14375239/acra-exception-can-only-use-lower-16-bits-for-requestcode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!