2013-01-17 9 views
9

Meine App verwendet ACRA für die Fehlerberichterstattung, und ich habe ein paar Berichte von meinem Gerät mit dem Fehler: Kann nur niedrigere 16 Bits für RequestCode verwenden .. Google zeigt dies Fehler aufgetreten bei der Verwendung von startActivityForResult, aber ich habe meinen Code ein paar Mal gesucht und ich rufe das nirgendwo.ACRA-Ausnahme Kann nur niedrigere 16 Bit für Anforderungscode verwenden

Ich bin ziemlich verwirrt und frage mich, wie sich das auf die Benutzer auswirkt (interessanterweise, die Crash Reports Beta zeigt keine Fehler überhaupt).

Wer sonst laufen in das?

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) 

Kann mir jemand dabei helfen?

+1

möglich Duplikat [Exception mit Android bei der Verwendung von ACRA] (http://stackoverflow.com/questions/14378002/exception-with-android-when-using-acra) –

Antwort

14

RequestCodes können nur maximal 0xffff (65535) sein. So werden Sie wahrscheinlich startActivityForResult(intent, REQUEST_CODE); und REQUEST_CODE fordern größer als 65535

Lösungen:

  • make Anforderungscode kleine
  • Überschreibung startActivityForResult Ihre größere Anfrage Codes zu behandeln (was meist zu einem Hack kommt vor, dass truncates oder irgendeine andere Manipulation, um Ihren Anfrage-Code innerhalb der Grenzen zu schieben) In der linked answer (von oben) gibt es den Code in startActivityForResult das ist das Problem, das Sie von Raghav Sood laufen.
+1

und der einfachste Weg, „auf Antrag stellen Code kleiner "wäre, einfach' & 0xFFFF' zu Ihrem "zu langen" Code hinzuzufügen –

+2

(UND SICHERSTELLEN, DASS DIESER CODE EIN POSITIVER WERT IST) –