ग्रहण में एक परियोजना को आयात करने के बाद 'एक सुपरक्लास विधि को ओवरराइड करना चाहिए'


1250

किसी भी समय मुझे अपनी परियोजनाओं को ग्रहण में फिर से आयात करना होगा (यदि मैंने ग्रहण को फिर से स्थापित किया है, या परियोजनाओं के स्थान को बदल दिया है), तो मेरे लगभग सभी ओवरराइड तरीकों को सही ढंग से स्वरूपित नहीं किया गया है, जिससे त्रुटि:

सुपरक्लॉस विधि को ओवरराइड करना होगा

यह उल्लेख करना उल्लेखनीय हो सकता है कि जो भी कारण के लिए एंड्रॉइड प्रोजेक्ट्स के साथ है, विधि तर्क मान हमेशा आबाद नहीं होते हैं, इसलिए मुझे मैन्युअल रूप से उन्हें खुद को आबाद करना होगा। उदाहरण के लिए:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

शुरू में इस तरह से आबाद किया जाएगा:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

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

यह काफी दर्द हो जाता है मैन्युअल रूप से हाथ से मेरे सभी ओवरराइड तरीकों को फिर से बनाने के लिए। अगर कोई समझा सकता है कि ऐसा क्यों होता है या इसे कैसे ठीक किया जाए। मुझे बहुत प्रसन्नता होगी।

हो सकता है कि यह उन तरीकों के कारण हो जो मैं विधियों को प्रारूपित कर रहा हूं, जो किसी अन्य विधि के तर्क के अंदर हैं?


1
कृपया इस आइटम की जाँच करें, यह ओवरराइड के उपयोग की व्याख्या करता है। मेरा मानना ​​है कि विशेष रूप से इस स्थिति के लिए न केवल सब कुछ के लिए यह अभ्यास बहुत महत्वपूर्ण है। stackoverflow.com/questions/94361/…
oagostinho

जवाबों:


1432

ग्रहण जावा 1.5 के लिए डिफ़ॉल्ट है और आपके पास इंटरफ़ेस विधियों को लागू करने वाली कक्षाएं हैं (जो कि जावा 1.6 में एनोटेट किया जा सकता है @Override, लेकिन जावा 1.5 में केवल सुपरक्लास पद्धति को ओवरराइड करने के तरीकों पर लागू किया जा सकता है)।

अपनी परियोजना / आईडीई वरीयताओं पर जाएं और जावा संकलक स्तर 1.6 पर सेट करें और यह भी सुनिश्चित करें कि आप ग्रहण से अपने कार्यक्रम को निष्पादित करने के लिए JRE 1.6 का चयन करें।


35
मेरा प्रोजेक्ट 1.6 पर सेट किया गया था, इसलिए मैंने सितारों के लिए शूटिंग की और इसे 1.5 पर सेट किया, फिर से बनाया, फिर 1.6 तक। चमत्कारिक ढंग से इसने मेरा मुद्दा सुलझा दिया। मुझे सही दिशा बताने के लिए धन्यवाद!
माइकल क्रुकलिस

6
एक ही मुद्दा रहा ... इस उत्तर में दिए गए सुझाव की कोशिश की लेकिन फिर भी सफल नहीं हुआ। :( :(
आदित्य_गौर

6
@MichaelKrauklis मैं 1.6 हूं और मैं इस मुद्दे पर आ रहा हूं। मैंने 1.5 पर सेट किया है और इसे साफ किया है और 1.6 पर वापस सेट किया है और इसे फिर से साफ किया है। फिर भी हल नहीं हुआ। कोई विचार?
पेसियर

6
यहाँ एक ही समस्या, मेरे मामले में, मैंने JDK 1.6 को स्थापित नहीं किया था, केवल नवीनतम 1.7, जो जाहिरा तौर पर एंड्रॉइड के साथ काम नहीं करता है। पुराने 1.6 को स्थापित करना और फिर इन निर्देशों का पालन करना, काम करना चाहिए :)
NoBugs

4
इसका उल्लेख किया जाना चाहिए (जैसे अन्य उत्तरों की टिप्पणियों में) एक साफ निर्माण के बाद एक पुनरारंभ द्वारा अक्सर आवश्यक होता है।
gsingh2011

308

ग्रहण गैलीलियो के साथ आप ग्रहण -> वरीयता मेनू आइटम पर जाएं, फिर संवाद में जावा और कंपाइलर का चयन करें।

अब यह अभी भी 1.6 पर कंपाइलर अनुपालन स्तर दिखा सकता है, फिर भी आप अभी भी इस समस्या को देखते हैं। तो अब " प्रोजेक्ट कॉन्फ़िगर विशिष्ट सेटिंग्स ... " लिंक का चयन करें और वहां आप देखेंगे कि परियोजना 1.5 पर सेट है, अब इसे 1.6 में बदल दें। आपको सभी प्रभावित परियोजनाओं के लिए ऐसा करने की आवश्यकता होगी।

यह बीजान्टिन मेनू / संवाद इंटरफ़ेस ग्रहण के ख़राब UI डिज़ाइन के लिए विशिष्ट है।


78

मामले में यह किसी और के साथ होता है जिसने अल्फ़ाज़ो और पॉल दोनों की विधि की कोशिश की और फिर भी काम नहीं किया।

मेरे लिए, प्रोजेक्ट> क्लीन करने के बाद भी किसी तरह संकलित त्रुटियों को 'कैश्ड' ग्रहण करें ...

मुझे प्रोजेक्ट> बिल्ड ऑटोमैटिकली अनचेक करना था, फिर एक प्रोजेक्ट> क्लीन, और फिर बिल्ड।

इसके अलावा, जब संदेह हो, तो ग्रहण को पुनः आरंभ करने का प्रयास करें । यह बहुत ही अजीब, अस्पष्टनीय त्रुटियों को ठीक कर सकता है।


4
मैंने न केवल स्वच्छ संवाद पर "स्वचालित रूप से एक निर्माण प्रारंभ करें" को अनियंत्रित किया। तभी इसने मेरे लिए काम किया।
विल्सन

3
मुझे त्रुटियों को हटाने के बाद भी ग्रहण को पुनः आरंभ करना पड़ा।
डेव कैमरून

42

इस समस्या को हल करने के लिए, अपने प्रोजेक्ट गुणों पर जाएं -> जावा कंपाइलर -> कंपाइलर कंप्लायंस लेवल को 1.6-> अप्लाई करें।


22

पॉल के जवाब ने मेरे लिए आंशिक रूप से काम किया। मुझे तब भी एक त्रुटि हुई थी। इसलिए, इसके अलावा, मुझे प्रॉपर्टीज> प्रोजेक्ट प्रोजेक्ट्स में भी जाना था और वहां 1.5 से 1.6 तक जावा वर्जन सेट करना था।

शायद यही मदद करता है।


14

मेरे मामले में दोस्तों ऊपर दिए गए समाधानों में से कोई भी काम नहीं किया।

मुझे प्रोजेक्ट वर्कस्पेस के भीतर फाइल डिलीट करनी थी:

  • .project
  • .classpath

और फ़ोल्डर:

  • ।समायोजन

फिर मैंने उन लोगों को एक समान प्रोजेक्ट से कॉपी किया जो पहले काम कर रहा था। यह मेरी टूटी परियोजना को ठीक करने में कामयाब रहा।

बेशक, पिछले विकल्पों की कोशिश करने से पहले इस पद्धति का उपयोग न करें!


14

यदि उपरोक्त में से कुछ भी मदद नहीं करता है, तो सुनिश्चित करें कि आपके पास एक उचित " निष्पादन वातावरण " चयनित है, कि "वैकल्पिक JRE"।

के तहत पाया जा सकता है:

प्रोजेक्ट -> बिल्ड पाथ -> लाइब्रेरी

का चयन करें JRE System Libraryऔर क्लिक करें Edit...

यदि "वैकल्पिक JRE ..." का चयन किया गया है, तो इसे एक फिटिंग "निष्पादन वातावरण" की तरह बदलें JavaSE-1.8 (jre1.8.0_60)। पता नहीं क्यों, लेकिन यह इसे हल करेगा।


2
मैंने "निष्पादन वातावरण" चुना, फिर ओके दबाया और त्रुटि चली गई। फिर मैं उसी संवाद पर वापस आया, और "कार्यक्षेत्र डिफ़ॉल्ट JRE (...)" का चयन किया, जो मेरा पिछला चयन था जब मुझे ग्रहण से त्रुटि हो रही थी, तब ओके दबाया, और त्रुटि नहीं हुई?!? यह एक ग्रहण यूआई बग या ऐसा कुछ होना चाहिए (मैं ग्रहण नियॉन 4.6.2 पर हूं)
mljrg

11

यह मेरी दूसरी बार इस समस्या का सामना है। अल्फ़ाज़ो की सिफारिश के अनुसार पहली बार इसने काम किया। लेकिन दूसरी बार जब मैंने इसे 1.6 पर सेट किया, तो यह 'CACHE' की तरह काम नहीं करता है, यह त्रुटि साफ और पुनर्निर्माण के बाद होती है।

रोलिन_स ने कहा कि 'बिल्ड ऑटोमेटिकली' स्विच ऑफ करने की कोशिश करें -> यहाँ अभी भी त्रुटि है!

इसलिए मैंने पैकेज एक्सप्लोरर से समस्या परियोजना (पहले से ही 1.6 पर सेट) को हटा दिया और इसे फिर से आयात किया -> यह इस बार पुनर्निर्माण और कोई त्रुटि नहीं शुरू करता है

आशा है कि यह किसी की मदद करेंगे


10

फिक्सिंग एक सुपर क्लास विधि को ओवरराइड करना चाहिए त्रुटि मुश्किल नहीं है, आपको बस जावा स्रोत संस्करण को 1.6 में बदलने की आवश्यकता है क्योंकि जावा 1.6 @ ऑवरराइड एनोटेशन का उपयोग इंटरफ़ेस विधि के साथ किया जा सकता है। स्रोत संस्करण को 1.6 चरणों में नीचे बदलने के लिए:

  1. प्रोजेक्ट का चयन करें, राइट क्लिक करें, गुण
  2. जावा कंपाइलर का चयन करें और चेक बॉक्स "प्रोजेक्ट विशिष्ट सेटिंग्स सक्षम करें"
  3. अब कंपाइलर कंप्लायंस लेवल को 1.6 कर दें
  4. परिवर्तन लागू करें

10

मेरे मामले में यह समस्या तब हुई जब मैंने एक मेवेन परियोजना को ग्रहण में आयात किया। इसे हल करने के लिए, मैंने निम्नलिखित जोड़ा pom.xml:

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

फिर प्रोजेक्ट के संदर्भ मेनू में, "मावेन -> अपडेट प्रोजेक्ट ..." पर जाएं, और ओके दबाएं।

बस। उम्मीद है की यह मदद करेगा।


धन्यवाद, मुझे लगता है कि यह अभिभावक पोम कॉन्फ़िगरेशन या कुछ और को ओवरराइड करता है। (मैं समस्या को दूसरे तरीके से
मानता हूं

6

मेरे मामले में, उपरोक्त कोई भी समाधान काम नहीं करता है। मुझे अपने स्रोत कोड को किसी अन्य फ़ोल्डर में जांचना होगा। ग्रहण से फ़ाइल> कार्यस्थानों को स्विच करें> अन्य ... और फिर नए कार्यस्थानों के लिए कोड आयात करें। यह उसके बाद काम करता है।


2

यह तब होता है जब आपकी मावेन परियोजना विभिन्न कंपाइलर अनुपालन स्तर का उपयोग करती है और ग्रहण आईडीई विभिन्न कंपाइलर अनुपालन स्तर का उपयोग करती है। इसे ठीक करने के लिए हमें मावेन परियोजना के कंपाइलर अनुपालन स्तर को आईडीई के उपयोग के स्तर तक बदलना होगा।

1) ग्रहण आईडीई में जावा कंपाइलर कंप्लायंस स्तर का उपयोग करता है

*) विंडो -> प्राथमिकताएं -> संकलक -> संकलक अनुपालन स्तर: 1.8 (या 1.7, 1.6, ect)

2) मावेन परियोजना के जावा कंपाइलर अनुपालन स्तर को बदलने के लिए

*) "प्रोजेक्ट" पर जाएं -> "गुण" -> "जावा कंपाइलर" चुनें -> कंपाइलर कंप्लायंस स्तर बदलें: 1.8 (या 1.7, 1.6, ect)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.