2012-10-11 7 views
17

के साथ समस्या को नहीं समझ सकता, मुझे स्पष्ट रूप से एक ऐप में सैमसंग नेक्सस पर 1 गतिविधि के साथ कोई समस्या है और मैं समझ नहीं पा रहा हूं कि वास्तव में इस मुद्दे को क्या कारण है।मैं किसी स्टैकट्रैक त्रुटि

java.lang.ArrayIndexOutOfBoundsException: length=244; index=1753 
at android.text.MeasuredText.addStyleRun(MeasuredText.java:168) 
at android.text.MeasuredText.addStyleRun(MeasuredText.java:204) 
at android.text.StaticLayout.generate(StaticLayout.java:281) 
at android.text.StaticLayout.<init>(StaticLayout.java:140) 
at android.text.StaticLayout.<init>(StaticLayout.java:80) 
at android.text.StaticLayout.<init>(StaticLayout.java:59) 
at android.widget.TextView.makeSingleLayout(TextView.java:5901) 
at android.widget.TextView.makeNewLayout(TextView.java:5741) 
at android.widget.TextView.onMeasure(TextView.java:6098) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1038) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:576) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
at android.view.View.measure(View.java:15172) 
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1196) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
at android.widget.ScrollView.onMeasure(ScrollView.java:318) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
at android.view.View.measure(View.java:15172) 
at android.widget.LinearLayout.measureVertical(LinearLayout.java:833) 
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148) 
at android.view.View.measure(View.java:15172) 
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848) 
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
at android.view.Choreographer.doFrame(Choreographer.java:525) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4745) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
at dalvik.system.NativeStart.main(Native Method) 

यह वह गतिविधि है जो मेरा ग्राहक मुझे बता रहा है कि समस्या का कारण बन रहा है। यह केवल समस्या है।

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 



public class Protocols03_04Activity extends Activity 
{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.protocols03_04); 



    } 
    //Options Menu 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     super.onCreateOptionsMenu(menu); 
     getMenuInflater().inflate(R.menu.optmenu, menu); 
     menu.findItem(R.id.medcom_optmenu_item).setIntent(new Intent(this, CallMedcom.class)); 
     menu.findItem(R.id.dispatch_optmenu_item).setIntent(new Intent(this, CallDispatch.class)); 
     menu.findItem(R.id.settings_optmenu_item).setIntent(new Intent(this, ProtocolsSettingsActivity.class)); 
     menu.findItem(R.id.mmenu_optmenu_item).setIntent(new Intent(this, ProtocolsMMenuActivity.class)); 
     menu.findItem(R.id.gps_optmenu_item).setIntent(new Intent(this, GPSActivity.class)); 
     menu.findItem(R.id.search_optmenu_item).setIntent(new Intent(this, SearchActivity.class)); 
     return true; 
    } 
} 

मैंने इस मुद्दे को फिर से बनाने की कोशिश की है, लेकिन मैं सक्षम नहीं हूं। मैंने 2 अलग मोटोरोला फोन पर कोशिश की।

+0

धन्यवाद कुछ djmedic ... आपके प्रश्न ने मुझे बचाया। मेरे पास एक ही तरह का मुद्दा है। – praveenb

उत्तर

16

टेक्स्ट व्यू के साथ एक ज्ञात बग लगता है। इसी तरह के मुद्दों की जांच करें here और here

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

UPDATED

djmedic एक समाधान here

+0

धन्यवाद। वे लिंक उपयोगी थे। मुझे एक कामकाज मिला लेकिन मैं इसे कैसे कार्यान्वित कर सकता हूं। यह https://gist.github.com/3424004 पर है। क्या यह एक अलग गतिविधि है और मैं इसे बुलाता हूं? यदि ऐसा है तो आप इसे कैसे कहते हैं? अगर यह मेरी वास्तविक गतिविधि में जाना है, तो मुझे त्रुटियां थीं। – djmedic

+1

आपको जेलीबीनस्पैनफिक्सटेक्स्टव्यू के साथ अपने लेआउट में टेक्स्ट व्यू को बदलकर उस कोड का परीक्षण करना चाहिए। यह एकता नहीं है, यह एक कस्टम TextView है। तो com.myproject.mycustomtextview की तरह कहीं भी जेलीबीनस्पैनफिक्सटेक्स्टव्यू को सहेजें। [यहां] (http://prasanta-paul.blogspot.com.au/2010/05/android-custom-textview.html) एक ऐसा ट्यूटोरियल है जिसे मैंने आपके लेआउट में कस्टम व्यू का उपयोग करने के लिए पाया है। विशेष रूप से, चरण 3 देखें, जहां यह कस्टम दृश्य को संदर्भित करने के लिए पूरी तरह से योग्य नाम का उपयोग कर रहा है। – rlay3

+1

rlay3 धन्यवाद आपके उत्तर के लिए कुछ। यह मुझे बचाया। कक्षा का उपयोग करने के तरीके के बारे में स्पष्टीकरण के लिए बहुत बहुत धन्यवाद। – praveenb

0

मेरा अनुभव उन दोस्त हैं, जो उनकी परियोजनाओं के लिए कस्टम TextView जोड़ने के लिए नहीं करना चाहते करने के लिए मदद कर सकते हैं मिल गया है।

सबसे पहले, मैं एंड्रॉइड एमुलेटर (4.1.2, एपीआई 16) में इस त्रुटि को पुन: पेश कर सकता हूं। इसके बाद मैंने यह पता लगाने का फैसला किया कि इस त्रुटि का कारण क्या है। जाहिर है - कुछ स्वरूपण (जो "स्पैन" बनने का कारण बनता है)। यह पता चला कि मेरे मामले में यह दो स्थानों में बदलने के लिए पर्याप्त था उदा। इस:

\"<b>@username</b>\"

इस के साथ

:

\"@username\"

1

मैं एक ही समस्या थी। यह जेलीबीन पर न केवल एक मुद्दा है। इसे एक टेक्स्ट व्यू के साथ करना है जो एचटीएमएल कनवर्टेड सादा पाठ में स्पैन टैग जोड़ता है जिससे इंडेक्सऑटबाउंड अपवाद होता है। इस link पर एक कामकाज है।

इस कस्टम टेक्स्ट व्यू के साथ अपना टेक्स्ट व्यू बदलें। यदि स्पैन टैग समस्या का पता चलता है, तो यह इसे पकड़ता है और इसके बजाय सामग्री को सादा पाठ में प्रदर्शित करता है।

public class PatchedTextView extends TextView { 
public PatchedTextView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 
public PatchedTextView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 
public PatchedTextView(Context context) { 
    super(context); 
} 
@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    try{ 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    }catch (ArrayIndexOutOfBoundsException e){ 
     setText(getText().toString()); 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    } 
} 
@Override 
public void setGravity(int gravity){ 
    try{ 
     super.setGravity(gravity); 
    }catch (ArrayIndexOutOfBoundsException e){ 
     setText(getText().toString()); 
     super.setGravity(gravity); 
    } 
} 
@Override 
public void setText(CharSequence text, BufferType type) { 
    try{ 
     super.setText(text, type); 
    }catch (ArrayIndexOutOfBoundsException e){ 
     setText(text.toString()); 
    } 
} 

}

+0

मुझे सबसे अधिक वोट दिए गए उत्तर में समस्याएं थीं। यह मेरे लिए बहुत अच्छा काम करता है =) –

3

एंड्रॉयड स्टूडियो अद्यतन कर रहा है के बाद एक ही समस्या था (या एसडीके ..)। मैं EditText के इनपुट टाइप को सेट करके इसे ठीक कर सकता हूं।

android:inputType="text" 
+0

यह समाधान है! मेरे लिए काम किया! –

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