2010-12-09 10 views
7

मैं एंड्रॉयड 2.2.1 पर निम्नलिखित अपवाद हो रही है:स्काला: java.lang.NoSuchMethodError: java.lang.String.isEmpty

java.lang.NoSuchMethodError: java.lang.String.isEmpty

मैं स्काला से text.isEmpty बोल रहा हूँ। कुछ पता है इसे कैसे हल करना है?

+0

जांच इस पोस्ट http://stackoverflow.com/questions/7567765/nosuchmethoderror-string-isempty – Are0215

उत्तर

9

जेआरई/जेडीके 1.5 का उपयोग करें, जिसमें String पर isEmpty विधि नहीं थी। यह उन स्थितियों से बच जाएगा जहां स्कैला 1.6 के isEmpty का उपयोग अपने आप के बजाय करता है। यदि आपके पास जावा लाइब्रेरी भी हैं, तो 1.5 के साथ संगत लोगों को चुनना सुनिश्चित करें।

10

java.lang.String.isEmpty() जिंजरब्रेड (2.3) में जोड़ा गया था। आपको अपना खुद का प्रतिस्थापन कार्य लिखना होगा ...

+0

मैं 2.2 और संकलक compiles के खिलाफ संकलन कर रहा हूँ के बाद से उपलब्ध उस। यह 'IndexedSeqOptimized.isEmpty' में 'isEmpty' कार्यान्वयन पाता है। –

+1

यह कुछ स्केल अजीबता है। आपके प्रश्न में एंड्रॉइड एपीआई निश्चित रूप से जिंजरब्रेड तक दिखाई नहीं दे रहा था। देखें कि http://developer.android.com/reference/java/lang/String.html#isEmpty() कहता है "एपीआई लेवल 9 के बाद से" –

+0

हां, लेकिन मुझे लगता है कि इसे 'इंडेक्सेड सेक्वाइप्टिमाइज्ड' विशेषता से कार्यान्वयन का उपयोग करना चाहिए। सवाल यह है कि, यह इस विशेषता का उपयोग क्यों नहीं कर रहा है? –

7

वैकल्पिक रूप से (text.length()>0) का उपयोग करें?

+0

हां, अब मैं 'text.length == 0' का उपयोग कर रहा हूं। –

+0

मेरे लिए काम किया, धन्यवाद! – TharakaNirmana

4

उपयोग TextUtils.isEmpty() के बजाय, एपीआई स्तर 1.