问题
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 instartActivityForResult
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