2017-11-29 10 views
5

मुझे स्पैनबलस्टिंग इंटर्न में एनपीई के लिए क्रैशलिटिक्स में त्रुटि रिपोर्ट प्राप्त हो रही है लेकिन किसी भी फोन पर इस मुद्दे को पुन: उत्पन्न नहीं कर सकती है या इसका स्रोत निर्धारित नहीं कर सकता है। मैं इंटरनेट के लिए अंतर्निहित मुद्दे की पहचान करने में मदद करने के लिए बुला रहा हूं।android.widget.Editor: SpannableStringInternal में NullPointerException

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference 
    at android.text.SpannableStringInternal.hashCode(SpannableStringInternal.java:480) 
    at android.text.SpannedString.hashCode(SpannedString.java) 
    at java.util.Objects.hashCode(Objects.java:98) 
    at android.view.inputmethod.CursorAnchorInfo.<init>(CursorAnchorInfo.java:435) 
    at android.view.inputmethod.CursorAnchorInfo.<init>(CursorAnchorInfo.java) 
    at android.view.inputmethod.CursorAnchorInfo$Builder.build(CursorAnchorInfo.java:391) 
    at android.widget.Editor$CursorAnchorInfoNotifier.updatePosition(Editor.java:4390) 
    at android.widget.Editor$PositionListener.onPreDraw(Editor.java:3250) 
    at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1013) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2492) 
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1509) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7051) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:702) 
    at android.view.Choreographer.doFrame(Choreographer.java:638) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913) 
    at android.os.Handler.handleCallback(Handler.java:751) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6692) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 

स्रोत से ऐसा लगता है कि किसी भी तरह कर्सर/चयन शून्य स्पैन सेट होने का कारण बन रहा है।

त्रुटि केवल एंड्रॉयड 7 पर होता है: Crashlytics device info

+4

मुझे लगता है कि यदि आप हमें कुछ उदाहरण कोड प्रदान नहीं करते हैं तो हम बहुत मदद नहीं करेंगे। – Al0x

+2

@ Al0x मैं यहां पूरा आवेदन कोड पोस्ट कर सकता हूं और आप और मैं दोनों कोई बुद्धिमान नहीं होंगे। एप्लिकेशन में अलग-अलग व्यवहार के साथ 50 से अधिक 'एडिटटेक्स्ट' शामिल हैं। मुझे नहीं पता कि दुर्घटना कब और कहाँ हो रही है, इस प्रकार कोई संबंधित कोड पोस्ट नहीं कर सका। – Mannaz

+1

यह एक कठिन है। मैं 'CursorAnchorInfo' के लिए 'Build' में देखता हूं कि यह थ्रेड सुरक्षित नहीं है। (देखें [यहां] (https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/view/inputmethod/CursorAnchorInfo.java#L255))। क्या आप थ्रेड में स्पैन में हेरफेर कर रहे हैं? – Cheticamp

उत्तर

0

सामना एक ही मुद्दा। मेरे मामले में यह समृद्ध पाठ पार्सर lib cwac-richedit चुड़ैल के कारण होता था, शून्य स्पैन को स्पैन करने योग्य होने पर HTML को पार्स करते समय। इसके लिए fix है।

जांचें कि आप CharSequence कहां प्राप्त करते हैं जो संपादन टेक्स्ट में सेट है, यह बहुत संभावना है कि शून्य अवधि कहीं भी सेट हो। मेरे मामले में यह कर्सर या चयन नहीं था जो उन स्पैन सेट करता था।

संबंधित मुद्दे