2013-01-17 3 views
9

내 응용 프로그램은 오류보고에 ACRA를 사용하며 다음과 같은 오류가있는 장치에서 몇 가지 보고서를 받았습니다. requestCode에 하위 16 비트 만 사용할 수 있습니다. Google이이를 보여줍니다 startActivityForResult를 사용할 때 오류가 발생하지만 몇 번이나 코드를 검색 했으므로 아무 곳에서나 호출하지 않습니다.ACRA 예외 requestCode에 대해서만 하위 16 비트를 사용할 수 있습니다.

나는 꽤 혼란스럽고 이것이 사용자에게 어떻게 영향을 미치는지 궁금합니다 (흥미롭게도 충돌 보고서 베타) 모두에서 오류를 표시하지 않습니다.이에

누구나 다른 실행?

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) 

누군가가 도와 드릴 수 있습니까?

+1

가능한 중복 [안드로이드 예외 때 사용 ACRA] (http://stackoverflow.com/questions/14378002/exception-with-android-when-using-acra) –

답변

14

요청 코드의 최대 값은 0xffff (65535)입니다. 그래서 당신은 아마 startActivityForResult(intent, REQUEST_CODE);REQUEST_CODE를 호출하는 것은보다 큰 65535

솔루션입니다 :

  • 메이크업 대부분 해킹에 내려 올 것이다 당신의 더 큰 요청 코드 (처리 할 수있는 요청 코드 작은
  • 재정 startActivityForResult 그 잘라 내기 또는 다른 조작을 사용하여 범위 내에서 요청 코드를 푸시) linked answer (위)에는 Raghav Sood가 실행중인 문제 인 startActivityForResult의 코드가 있습니다.
+1

과 "요청을 할 수있는 가장 쉬운 방법 코드를 더 작게 "하면"너무 길다 "코드 –

+2

에 단순히 '& 0xFFFF'를 추가하는 것입니다 (그리고이 코드는 긍정적 인 값임을 확인하십시오) –