2013-01-17 10 views
9

Moja aplikacja używa ACRY do raportowania błędów, a mam kilka raportów z mojego urządzenia z błędem: Może używać tylko 16 bitów dla requestCode. Google pokazuje to Wystąpił błąd podczas korzystania z funkcji startActivityForResult, ale przeszukałem kod kilka razy i nigdzie go nie dzwonięACRA wyjątek Może używać tylko 16-bitowych bitów dla requestCode

Jestem bardzo zdezorientowany i zastanawiam się, jak to wpływa na użytkowników (co ciekawe, Crash Reports w wersji beta nie wykazuje żadnych błędów w ogóle).

ktoś inny przebieg do tego?

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) 

Czy ktoś może mi w tym pomóc?

+1

możliwe duplikat [wyjątek z systemem Android przy użyciu ACRA] (http://stackoverflow.com/questions/14378002/exception-with-android-when-using-acra) –

Odpowiedz

14

Kod żądania może mieć maksymalnie wartość 0xffff (65535). Więc zapewne nazywając startActivityForResult(intent, REQUEST_CODE); i REQUEST_CODE jest większa niż 65535.

Solutions:

  • make kod żądania mniejszy
  • przesłanianie startActivityForResult aby obsługiwać większe kody życzenie (które najczęściej sprowadzają się do hack że obcina lub wykonuje inną manipulację, aby popchnąć kod żądania w granicach) W numerze linked answer (z góry) znajduje się kod w numerze startActivityForResult, na który napotyka Raghav Sood.
+1

i najprostszy sposób, aby „uczynić żądanie mniejszy kod "byłoby po prostu dodać' & 0xFFFF' do twojego "zbyt długiego" kodu –

+2

(I UPEWNIJ SIĘ, ŻE TEN KOD JEST POZYTYWNYM WARTOŚCIĄ) –

Powiązane problemy