2013-01-17 22 views
9

मेरा ऐप त्रुटि रिपोर्टिंग के लिए एसीआरए का उपयोग करता है, और मुझे त्रुटि के साथ मेरे डिवाइस से कुछ रिपोर्ट मिली हैं: अनुरोध कोड के लिए केवल 16 बिट्स का उपयोग कर सकते हैं .. Google इसे दिखाता है startActivityForResult का उपयोग करते समय त्रुटि हुई, लेकिन मैंने अपने कोड को कुछ बार खोजा है और मैं इसे कहीं भी नहीं बुला रहा हूं।एसीआरए अपवाद अनुरोध के लिए केवल 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 (ऊपर से) में startActivityForResult में कोड है जो कि आप राघव सूद द्वारा चल रहे मुद्दे हैं।
+1

और आसान तरीका करने के लिए "अनुरोध करना कोड छोटा "आपके" बहुत लंबे "कोड –

+2

में बस 'और 0xFFFF' जोड़ना होगा (और सुनिश्चित करें कि यह कोड एक सकारात्मक मूल्य है) –