8

के साथ मेरा ऐप विभिन्न एंड्रॉइड संस्करणों के माध्यम से अच्छी तरह से हमला कर रहा है। मेरे पास उपयोगकर्ताओं को एंड्रॉइड 4.3, 5.0, 5.1 और 6.0 पर कोई समस्या नहीं है। हालांकि एस 7 एज वाला एक उपयोगकर्ता अभी एंड्रॉइड 7.0 के साथ अपडेट किया गया है और ऐप क्रैश हो रहा है जब पाठ को एडिटटेक्स्ट फ़ील्ड में चिपकाया जाता है (यह पहली और एकमात्र चीज है जो आप इस ऐप के साथ करते हैं - यह आपको टेक्स्ट में पेस्ट में पेस्ट करने लगती है और तो ऐप पाठ को पार करता है)।java.lang.NullPointerException Nougat

मैंने नल पॉइंटर अपवादों पर कई धागे देखे हैं और मैंने Editor.java के स्रोत को देखा है लेकिन कुछ भी स्पष्ट नहीं है। नीचे स्टैक ट्रेस मेरे कोड के साथ कोई समस्या नहीं दिखाता है। 7.0 के साथ वे क्या विचार बदलते हैं जो इसका कारण बन सकता है?

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.Editor$SelectionModifierCursorController.isDragAcceleratorActive()' on a null object reference 
at android.widget.Editor.updateFloatingToolbarVisibility(Editor.java:1520) 
at android.widget.Editor.onTouchEvent(Editor.java:1475) 
at android.widget.TextView.onTouchEvent(TextView.java:10024) 
at android.view.View.dispatchTouchEvent(View.java:10725) 
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550) 
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550) 
at android.widget.ScrollView.dispatchTouchEvent(ScrollView.java:738) 
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550) 
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550) 
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865) 
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550) 
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:505) 
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1863) 
at android.app.Activity.dispatchTouchEvent(Activity.java:3226) 
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:467) 
at android.view.View.dispatchPointerEvent(View.java:10954) 
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5051) 
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4908) 
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439) 
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4492) 
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4458) 
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4591) 
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4466) 
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4648) 
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439) 
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4492) 
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4458) 
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4466) 
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4439) 
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6936) 
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6875) 
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6836) 
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7046) 
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) 
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176) 
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7010) 
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7073) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927) 
at android.view.Choreographer.doCallbacks(Choreographer.java:702) 
at android.view.Choreographer.doFrame(Choreographer.java:632) 
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:6688) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 
+0

क्या आपने देखा है http://stackoverflow.com/questions/41687484/attempt-to-invoke-virtual-method-void-android-widget-editorselectionmodifiercu या http://stackoverflow.com/questions/37978026/java- lang-nullpointerexception-try-to-invoke-virtual-method-void-android-w –

+2

ऐसा लगता है कि यह एक ज्ञात समस्या है: https://code.google.com/p/android/issues/detail?id=228485 –

+0

बिल्कुल वही विधि क्रैश नहीं है लेकिन यह आंशिक रूप से सहायक है कि यह मेरा ऐप नहीं है। हालांकि मैं जानना चाहता हूं कि इसके आसपास कैसे जाना है। जैसा कि मैंने कहा था कि हालांकि मेरा ऐप कुछ भी नहीं कर रहा है जब वे टेक्स्ट पेस्ट करते हैं :-( – Gavin

उत्तर

1

इस प्रकार आप कॉपी पेस्ट मेनू को किसी भी तरह से, आकार या रूप में दिखने से रोकते हैं। इस बग ने वास्तव में मुझे पागल कर दिया, और किसी भी सैमसंग बग के साथ आप इसे अपने कोड में जानते हैं लेकिन आप यह भी जानते हैं कि वे जल्द ही इसे ठीक नहीं करेंगे। वैसे भी, यहाँ आश्चर्य दीवार है ...

  1. चेक अगर Android.Build.Model.toLowerCase()। StartsWith ('SM-G930')। पूरी स्ट्रिंग से मेल न करें, अंतिम अक्षर एक मामूली संस्करण पहचानकर्ता है। मैंने इस बुलियन को ब्लैककोपीपेस्ट वैरिएबल में संग्रहीत किया जो बाद में आता है।

  2. यदि यह मेल खाता है तो आप प्रतिलिपि पेस्ट मेनू को दिखने से रोकना चाहते हैं। इस तरह आप वास्तव में यह करते हैं !!!

इन 2 कार्यों ओवरराइड, तुम मेरे shouldBlockCopyPaste बूलियन पर ध्यान देंगे, यह इतना अन्य उपकरणों न अवरुद्ध हो जाता है।

@Override 
    public ActionMode StartActionMode (ActionMode.Callback callback){ 
     if (shouldBlockCopyPaste) { 
     return null; 
     } else { 
     return super.StartActionMode(callback); 
     } 
    } 

    @Override 
    public ActionMode StartActionMode (ActionMode.Callback callback, int type){ 
     if (shouldBlockCopyPaste) { 
     return null; 
     } else { 
     return super.StartActionMode(callback, type); 
     } 
    } 
+0

पर एक ही समस्या है यह समाधान काम नहीं करता है। क्या यह आपके साथ काम करता है? क्या आपके पास कोई अन्य प्रस्तावित समाधान है? – user1510006

1

मैं दूर करने

MyEditText.setMovementMethod से इसका समाधान नहीं होता (नई ScrollingMovementMethod());

+0

धन्यवाद। मैं स्क्रॉलिंग के लिए इसका इस्तेमाल कर रहा था और यह समाधान मेरे लिए काम करता है। – Awais

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