我的应用程序使用ACRA进行错误报告,我的设备中有一些报告错误:只能使用较低的16位来处理requestCode.Google显示使用startActivityForResult时出现此错误,但我已经我几次搜索了我的代码而且我没有在任何地方打电话。
我很困惑,并且想知道这对用户有何影响(有趣的是,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)
有人可以帮我吗?
答案 0 :(得分:14)
RequestCodes只能是0xffff
(65535)的最大值。所以你可能正在调用startActivityForResult(intent, REQUEST_CODE);
而REQUEST_CODE
大于65535。
解决方案:
startActivityForResult
来处理更大的请求代码(这些代码主要归结为截断或其他操作以将请求代码推送到边界内)在linked answer(从上面) startActivityForResult
中的代码是Raghav Sood遇到的问题。