16

में अजीब NullPointerException एंड्रॉइड 4.4 KitKat के बाद से, मेरे अनुप्रयोगों में अजीब दुर्घटनाएं हैं। ऐसा लगता है कि स्पिनर के साथ इसका कुछ संबंध है। बग के इस स्टैकट्रेस मैं प्राप्त कर रहा:स्पिनर

java.lang.NullPointerException 
    at android.widget.TextView.makeNewLayout(TextView.java:6124) 
    at android.widget.TextView.onMeasure(TextView.java:6400) 
    at android.view.View.measure(View.java:16458) 
    at android.widget.Spinner.setUpChild(Spinner.java:632) 
    at android.widget.Spinner.makeView(Spinner.java:595) 
    at android.widget.Spinner.getBaseline(Spinner.java:431) 
    at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1089) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:590) 
    at android.view.View.measure(View.java:16458) 
    at com.android.internal.widget.ActionBarView.onMeasure(ActionBarView.java:1011) 
    at android.view.View.measure(View.java:16458) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
    at com.android.internal.widget.ActionBarContainer.onMeasure(ActionBarContainer.java:271) 
    at android.view.View.measure(View.java:16458) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
    at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:254) 
    at android.view.View.measure(View.java:16458) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2289) 
    at android.view.View.measure(View.java:16458) 
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1914) 
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1111) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1293) 
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5582) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
    at android.view.Choreographer.doFrame(Choreographer.java:532) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
    at android.os.Handler.handleCallback(Handler.java:733) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4998) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
    at dalvik.system.NativeStart.main(Native Method) 

मैं ActionBar में स्पिनर नेविगेशन है और मैं इसे इसके साथ क्या करने के लिए कुछ न कुछ है कि लगता है। मैं एबीएस का उपयोग कर रहा हूं। मैंने अपने स्पिनर सरणी एडाप्टर की दृश्य विधि प्राप्त करने के लिए त्रुटि को ट्रैक किया है।

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (LoginUtils.isLogged()) { 
      items[Properties.NAVIG_ITEM_MY_PROFILE] = LoginUtils.getTextForAdapter(); 
     } else { 
      items[Properties.NAVIG_ITEM_MY_PROFILE] = context.getString(R.string.userProfile); 
     } 
     View view = convertView; 
     if (view == null) { 
      LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = vi.inflate(R.layout.ab_spinner_item, null); 
     } 
     String text = items[position]; 
     TextView menu = (TextView) view.findViewById(android.R.id.text1); 
     if (title == null) { 
      menu.setText(text); 
     } else { 
      menu.setText(title); 
     } 
     return view; 
    } 

मैं टिप्पणी इस लाइनों हैं:

//if (title == null) { 
     menu.setText(text); 
// } else { 
//  menu.setText(title); 
// } 

समस्या गायब हो जाता है यहाँ मेरी getView तरीका है। क्या किसी को कोई ख़याल है?

+0

को बढ़ाने के बारे में सख्त होने की कोशिश कर रहा है क्या आपने अपना कोड डीबग करने का प्रयास किया था और जांचें कि कौन सा चर शून्य है? –

+0

हां मैं इसे डीबग करता हूं और कोई वैरिएबल शून्य नहीं है – Billda

उत्तर

20

जैसा कि पीटरडक here का वर्णन करता है। एल्लिप्साइज = "मार्की"

वह उपयोग करने का सुझाव:: आप

एंड्रॉयड हटाने की जरूरत न

inflater.inflate (android.R.layout.simple_spinner_item, नल);// गलत inflater.inflate (android.R.layout.simple_spinner_item, माता पिता, गलत); // अच्छा

यह मेरी समस्या तय है। मुझे लगता है कि एंड्रॉइड 4.4 लेआउट

+0

आदर्श और आम तौर पर पेरेंट परम क्या होना चाहिए? –

4

तो मैं मेकन्यूआउट विधि में टेक्स्टव्यू क्लास में उस पंक्ति को जांचता हूं और पाया कि यह अपवाद इस लाइन पर हो रहा है final int height = mLayoutParams.height; लेआउट पैरा शायद संभवतः शून्य हैं .. और यह रेखा ब्लॉक में है जो लंबे टेक्स्ट को लंबित करने में संभालती है .. इसलिए मैंने इसे हटा दिया xml android:ellipsize="marquee" में टेक्स्ट व्यू विशेषता और फिर समस्या वास्तव में गायब हो जाती है .. अजीब अजीब

1

धन्यवाद। मैं एंड्रॉइड को हटाकर दुर्घटनाग्रस्त हो गया: मेरे सभी लेआउट से इलिप्सिज़।

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