एंड्रॉइड स्टूडियो इनलाइन संकलक लाल त्रुटियां दिखा रहा है, लेकिन ग्रेडेल के साथ संकलन ठीक काम करता है


147

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

Build-> Compile Projectठीक काम करता है।

2:03:10 PM Compilation completed successfully in 31 sec

हालाँकि, यदि मैं अपनी उत्पन्न प्रोटोकॉल बफ़र फ़ाइलों में से एक को खोलता हूं, तो स्क्वायर पैकेज को मान्यता नहीं दी जा रही है।

एंड्रॉइड स्टूडियो इनलाइन संकलित त्रुटियां

एक अन्य लक्षण यह है कि स्क्वायर Messageवर्ग से विरासत में मिली विधियों को संपादक में "त्रुटियों को हल नहीं कर सकता" संकलन त्रुटियों के रूप में दिखा रहा है, भले ही वे निर्माण और ठीक चलाते हैं।

एंड्रॉइड स्टूडियो सिंगल लाइन कंपाइल एरर

क्या मुझे build.gradleअपने प्रोजेक्ट में अपने मॉड्यूल के लिए निर्भरता जोड़ने से ज्यादा कुछ करने की जरूरत है ?


मेरे पुस्तकालयों (बाहरी लोगों से नहीं) का उपयोग करने के लिए मेरे पास एक समान मुद्दा था, देखें कि मैं इसे कैसे ठीक करता हूं: यहां stackoverflow.com/a/50569818/373033
nah0y

जवाबों:


132

निम्नलिखित कदम मदद करता है

  1. अपना प्रोजेक्ट बंद करें, और अपने प्रोजेक्ट फ़ोल्डर में हटाएं project/.idea
  2. ~/.gradleफ़ोल्डर हटाएँ ।

प्रोजेक्ट को फिर से खोलें। सब कुछ हल होना चाहिए।


1
इस समस्या पर घंटों खर्च करना। धन्यवाद। मेरी गलती यह थी कि मैंने सिर्फ .gradle और नहीं हटाए .idea
M at

2
इसने मेरे लिए .gradle और .idea को हटाने का काम किया और फिर अमान्य और पुनः आरंभ करने से मेरी समस्या हल हो गई। और फिर सिंक के साथ सिंक करें।
पंकज

मैंने .gradleफ़ोल्डर C:\Users\Hasnain\.gradleको दूसरी निर्देशिका से स्थानांतरित कर दिया है । बाद में, एंड्रॉइड स्टूडियो प्रत्येक और प्रत्येक वर्ग पर त्रुटि दिखाता है। फिर मैं ऊपर दिए गए चरणों का पालन करता हूं, फिर समस्या हल हो जाती है।
hasnain_ahmad

38
.ideaनिर्देशिका में सब कुछ हटाना एक बुरा विचार है, क्योंकि यह सभी परियोजना सेटिंग्स को रीसेट कर सकता है। बस हटाने .idea/librariesऔर .idea/cachesअंत में अन्य सभी समाधानों की कोशिश करने के बाद मेरे लिए समस्या हल हो गई।
fdermishin

3.1.3 के रूप में बहुत अच्छी तरह से काम किया। मुझे कैश को अमान्य करने की भी आवश्यकता नहीं थी। चलो आशा करते हैं कि एएस अब तेजी से निर्माण करेगा!
किसी ने

111

मुझे यहां सही रास्ते पर लाने के लिए free3dom का धन्यवाद।

निदान

Sync Project with Gradle Filesएंड्रॉयड स्टूडियो में विकल्प रखने के लिए लगता है Project Structureतारीख तक पुस्तकालयों।

सिंक सिंक

हालाँकि, मेरे मामले में कुछ त्रुटियाँ थीं:

त्रुटियाँ पाई गई

(बहुत स्पष्ट नहीं) लिंक का विस्तार करते हुए विस्तार दिखाया। मेरा वायर-रनटाइम लाइब्रेरी गलत स्थान पर दिखा रहा था:

पुस्तकालयों

यह मेरे मूल कॉन्फ़िगरेशन से हैंगओवर प्रतीत होता है जहाँ मैंने JAR को एक lib फ़ोल्डर में आयात किया था।

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

मैं बाद में बदल गया यह Maven सेंट्रल से सीधे आयात करने के लिए ( यहाँ के अनुसार ), और ऐसा लगता है कि पुरानी सेटिंग नए के साथ ओवरराइट नहीं किया गया।

जोड़

फ़िक्स को लाइब्रेरी की निर्भरता को Project Structureस्क्रीन से हटाना और फिर Sync Project with Gradle Filesसे चालू करना है।

ज्यादा जानकारी

आप यह भी देख सकते हैं कि संसाधन को .idea/libraries/wire_runtime_1_2_0.xmlसीधे खोलने के लिए किस मार्ग का उपयोग किया जा रहा है ।

मेरा एक टूट गया था:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

लाइब्रेरी को हटाने और फिर से जोड़ने के बाद इसे इसमें बदल दिया गया root url:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

अपडेट करें

एंड्रॉइड स्टूडियो v0.4.4 स्पष्ट रूप से अन्य बग्स को ठीक करता है जिसमें समान लक्षण होते हैं, इसलिए यदि आपके पास एक पुराना संस्करण है तो आप अपग्रेड करना चाह सकते हैं।


3
धन्यवाद Dan J. इससे पहले कि मैं आपके समाधान की कोशिश करूँ, मैंने इस आसान को (मेरे अनुसार) आज़माया और इसने मेरे लिए काम किया: संपादक के दाईं ओर ग्रेड पैनल खोलें ("मैवेन प्रोजेक्ट्स" और "कमांडर") और रिफ्रेश बटन पर क्लिक करें। मॉड्यूल सेटिंग्स को ताज़ा किया। @Matteo डैनेली को क्रेडिट (देखें: stackoverflow.com/a/17043001 )
almighty972

1
स्थानीय जार निर्भरता को हटाने की जरूरत है, कि यह मेरे लिए हल, प्रेरणा के लिए धन्यवाद
jhegedus

मैंने अभी "ग्रेड फ़ाइलों के साथ सिंक प्रोजेक्ट" पर क्लिक किया है और अब सब कुछ ठीक है! आपका बहुत बहुत धन्यवाद! आपने मेरा दिन बचाया है
जॉर्ज गेब्रियल सिकीरा

मेरे लिए काम नहीं किया। लेकिन हटाने .ग्रेड और .idea ने काम किया
गोलनार

आजकल एक ही बटन को नीचे तीर के साथ एक हाथी आइकन के रूप में दिखाया गया है।
tm

87

सरल उपाय

लिंक के माध्यम से जाओ और यह मेरे लिए काम किया।

  1. FileAndroid स्टूडियो के बाईं ओर स्थित मेनू से विकल्प चुनें ।
  2. विकल्प का चयन करें: Invalidate Cache/Restartयह एक संवाद खोलेगा।
  3. विकल्प के साथ पहले बटन पर क्लिक करें: Invalidate and Restart
  4. यह एंड्रॉइड स्टूडियो को बंद कर देगा और इसे पुनरारंभ करेगा। साथ ही, यह परियोजना को फिर से अनुक्रमित करना शुरू कर देगा।

इसने मेरी समस्या हल कर दी

पर जाएं फ़ाइल > अमान्य कैश / पुनः प्रारंभ > अमान्य और पुनः प्रारंभ

Youtube के लिए यहाँ स्रोत


यह मेरे लिए काम किया; खराब वाईफाई रिसेप्शन वाले स्थान पर कुछ प्रोग्रामिंग करने की कोशिश करने के बाद भी एंड्रॉइड स्टूडियो हर जगह त्रुटियां दिखा रहा था। (>) मैंने तब सुनिश्चित किया कि मेरे पास एक अच्छा वाईफाई कनेक्शन और पुनर्निर्माण है, हालांकि, त्रुटियां बनी रहीं। यहां तक ​​कि एक साफ / निर्माण भी इसे हल नहीं किया। अवैध कैश ने इसे ठीक कर दिया।
किसी ने

फेडोरा पर एंड्रॉइड स्टूडियो 2.1.3 का उपयोग करना। इस समाधान ने मेरे लिए काम किया। जोड़ा libgdx उपकरण और आयात में त्रुटि थी लेकिन यह ठीक संकलित है। बंद करना और फिर से खोलना काम नहीं करता था लेकिन अमान्य और पुनः आरंभ करना ठीक काम करता था।
जोमोइ

1
3.1.4 के रूप में काम किया! मुझे लगता है कि यह सभी सुझाव इसे संभालने का सही तरीका है। यह एंड्रॉइड स्टूडियो के मेनू कमांड द्वारा है। यह निश्चित रूप से फ़ाइल वातावरण में मैन्युअल रूप से रीसेट करने से बहुत बेहतर है।
Jan Bergström

मेरे लिए 3.5.1 पर काम किया
नीला

44

1) ग्रेड आइकन (Android स्टूडियो पर दाईं ओर) पर क्लिक करें

यहाँ छवि विवरण दर्ज करें

2) रिफ्रेश बटन पर क्लिक करें और मुद्दे के हल होने का इंतजार करें: डी

यहाँ छवि विवरण दर्ज करें


Android Studio 3.1 + पर, कृपया फ़ाइल> अमान्य कैश / पुनः प्रारंभ करें> अमान्य और पुनः प्रारंभ करें पर जाएं।
DroidDev

17

मुझे अभी भी लगातार एंड्रॉइड स्टूडियो v3.2.1 के साथ यही समस्या आ रही थी, और समस्या को हल किया, बस फ़ोल्डर के इन दो उप-फ़ोल्डर .ideaको हटा दिया (पूरे .ideaफ़ोल्डर को हटाने की कोई आवश्यकता नहीं थी ), जबकि एक सिंक सिंक ने काम नहीं किया:

  • ./idea/caches
  • ./idea/libraries

ज्यादातर मामलों में यह मेरी समस्याओं को हल करता है। कुछ अन्य लोगों में, "अमान्य कैश और पुनरारंभ करना" आवश्यक हो सकता है, या ग्रेड संस्करण को भी बदल सकता है।
GoRoS

12

मेरे लिए .gradle और .idea प्रोजेक्ट के फ़ोल्डर ने समस्या को हल किया।


11

बस अपने Android स्टूडियो पर ऐसा करें:

फ़ाइल -> अमान्य कैश / पुनः आरंभ -> अमान्य और पुनः प्रारंभ करें

इसने मेरे लिए काम किया। स्पष्ट करने की कोई आवश्यकता नहीं है


9

इसके लिए मेरी हैकी फिक्स -

  1. अपनी build.gradleफ़ाइल खोलें
  2. अंदर का सब कुछ काट दो dependencies{}
  3. सुपर सुरक्षित अस्थायी रखने के लिए नोटपैड में पेस्ट करें
  4. build.gradleफाइल में 'सिंक नाउ' चुनें
  5. सिंक के विफल होने की प्रतीक्षा करें
  6. अपनी निर्भरताएँ वापस चिपकाएँ
  7. 'फिर से सिंक करें'

बहुत सारे समाधान की कोशिश की और यह मेरे लिए एकमात्र फिक्स था।


7

एंड्रॉइड स्टूडियो 3.1 में अपग्रेड करने के बाद मुझे यह समस्या थी। मैंने अपने द्वारा उपयोग किए जाने वाले सभी घटकों को अपग्रेड करके समस्या को हल किया। इसलिए मैंने अपने build.gradle (ऐप) में निम्नलिखित प्रविष्टियाँ बदलीं:

  1. SDK को अपग्रेड करें ("compileSdkVersion 25" से "compileSdkVersion 26" या शायद अधिक जब आप यह नोट पढ़ते हैं):

    // compileSdkVersion 25

    compileSdkVersion 26

    टिप्पणी: यह परिवर्तन अगले सिंक के दौरान नया एसडीके डाउनलोड / स्थापित करने के लिए मजबूर करता है।

  2. Appcompat-v7 को अपग्रेड करें:

    // कार्यान्वयन 'com.android.support:appcompat-v7:25.4.0'

    कार्यान्वयन 'com.android.support:appcompat-v7:26.1.0'

  3. अपग्रेड फायरबेस:

    // कार्यान्वयन 'com.google.firebase: firebase-ads: 11.4.2'

    कार्यान्वयन 'com.google.firebase: firebase-core: 12.0.1'

    कार्यान्वयन 'com.google.firebase: firebase-ads: 12.0.1'

  4. PROJECT build.gradle में, Google-सेवाओं को अपग्रेड करें:

    // classpath 'com.google.gms: Google-Services: 3.1.0'

    classpath 'com.google.gms: Google-Services: 3.2.0'

  5. अपग्रेड अपग्रेड (4.4 से 4.6 तक)। Gradle-wrapper.properties: से वितरणUrl = https: //services.gradle.org/distributions/gradle-4.6-all.zip

इन परिवर्तनों के बाद, स्वच्छ परियोजना, कैश को पुनः आरंभ / अमान्य, हटाएं .idea / पुस्तकालयों की सामग्री और resync (आदेश के बारे में निश्चित नहीं है, लेकिन इन सभी गतिविधियों ने मेरे लिए समस्या हल कर दी है)।


1
अन्य घटकों के बारे में क्या जिनका कोई नया संस्करण नहीं है?
आमिर दादागिरी

मुझे नहीं पता। मेरे प्रोजेक्ट में वे घटक हैं।
पाब्लो अल्फोंसो

आधिकारिक वेबसाइट के अनुसार, हाय आमिर 4.4 नवीनतम उपलब्ध है (मार्च 2018 तक)। आपने ग्रैडल 4.6 कहाँ पाया?
पाब्लो अल्फोंसो

मुझे ग्रैडल 4.6 का स्थान मिला। मैंने जवाब अपडेट किया। धन्यवाद।
पाब्लो अल्फोंसो

4
हटाने .idea / पुस्तकालयों सामग्री, यह मेरे लिए काम करते हैं। बहुत बहुत धन्यवाद
ट्राम गुयेन

7

.Idea में पुस्तकालयों के फ़ोल्डर को हटाना मेरे लिए समस्या को हल करता है। यह परियोजना के मूल / .idea / पुस्तकालयों में स्थित है।

मैं एंड्रॉइड स्टूडियो 3.1.4 का उपयोग कर रहा हूं


2
यह काम किया लेकिन मुझे अमान्य और पुनः आरंभ करना पड़ा।
दान एंडरसन

5

नीचे दिए गए चरण जब परियोजना सुसंगत रूप से संकलित है लेकिन अनसुलझे वर्गों के साथ (सभी वर्गों का उपयोग सभी फाइलों में लाल रंग में होगा)

चरण 1. हटाएं। Regle फ़ाइल

स्टेप 2. डिलीट .idea फाइल

चरण 3. अपने सिस्टम पर कुछ अन्य एंड्रॉइड प्रोजेक्ट के साथ नए एंड्रॉइड स्टूडियो विंडो खोलें और त्रुटि के साथ अपने प्रोजेक्ट को बंद करें

चरण 3 । अब स्टूडियो टूलबार एंड्रॉइड स्टूडियो -> फ़ाइल -> ओपन से प्रोजेक्ट को एक बार फिर खोलें / आयात करें

नोट: अब जब आप प्रोजेक्ट को नए .gradle और नए को आयात करते हैं। कंपाइलर द्वारा सुलझाई गई निर्भरता के साथ .idea फ़ोल्डरों को ऑटोजेनर किया जाएगा।


2

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


2

मैंने ऊपर के अधिकांश सुधारों की कोशिश की और वास्तव में जो काम किया वह सभी .AndroidStudio कॉन्फिग फ़ोल्डर को हटा रहा था और फिर एंड्रॉइड स्टूडियो को पुनरारंभ कर रहा था।

  • स्थान: C: \ Users \ your.username

2

मुझे आसान रास्ता मिल गया

  • ऐप स्तर खोलें build.gradle
  • निर्भरता निकालें जो त्रुटि और सिंक दिखा रहा है।
  • फिर से निर्भरता और सिंक जोड़ें।

त्रुटि हो गई!

इससे पहले

इससे पहले

उपरांत

उपरांत



2

ऐसा लगता है कि हर कोई इन मुद्दों के आसपास पाने के लिए एक अलग दृष्टिकोण का उपयोग करता है। मैं एक और सुझाव दूंगा जो मुझे लगता है कि दूसरों की तुलना में थोड़ा कम आक्रामक है। जब मैं अनार लाइब्रेरी से बदलाव लाता हूं, जिसमें मैं शामिल हूं, तो मैं प्रोजेक्ट के लिए "settings.gradle" फ़ाइल खोलूंगा।

फिर परियोजनाओं की सूची से मुख्य परियोजना मॉड्यूल को काटें:

include ':mainproj',

और फिर अपने प्रोजेक्ट को सिंक करें। फिर इसे वापस पेस्ट करें और अपनी परियोजना को एक बार फिर से सिंक करें। मेरा मानना ​​है कि यह मैनुअल हटाने के कुछ चरणों के समान है, लेकिन यह आपको आईडीई से थोड़ा तेज और कम दर्द से ऐसा करने देता है।


मेरे लिए ठीक काम करता है। धन्यवाद! @ जय स्नाइडर
शिवम

2

मैं नीचे विधि द्वारा तय किया गया हूँ

विधि 1

फ़ाइल> अमान्य कैश / पुनः आरंभ करें> अमान्य और पुनः प्रारंभ करें

विधि 2

  • यदि आप केवल विशेष प्रोजेक्ट के लिए इस त्रुटि का सामना कर रहे हैं, तो यह करें
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
  • यदि आप सभी परियोजनाओं के लिए इस त्रुटि का सामना कर रहे हैं, तो यह करें
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5

1

ये समाधान मुझे एंड्रॉइड स्टूडियो 0.5.8 में एक ही समस्या के साथ मदद नहीं करते थे।

मैंने उसी प्रश्न के लिए अपने उत्तर का वर्णन किया (मुझे लगता है): https://stackoverflow.com/a/23891829/534698 मैंने अभी हटा दिया है ~ / .AndroidStudioPreview निर्देशिका (उबंटू में)। मैंने अपने सभी Android स्टूडियो सेटिंग्स को याद किया, लेकिन यह काम करता है।


यह केवल एक चीज है जो मेरे लिए काम करती है। एंड्रॉइड स्टूडियो 1.0.2
बॉबी हारगेट

1

मेरे मामले में, किसी कारण से, Android प्लगइन संस्करण सेट नहीं किया गया था। मैंने कैशे को हटाने और हटाने का प्रयास किया। और साथ ही।

फ़ाइल> प्रोजेक्ट संरचना


0

मेरे पास पहले भी इसी तरह का मुद्दा था, कैश को अमान्य करना और पुनरारंभ करना इसका समाधान नहीं था। मैंने सिर्फ ग्रैडल सिंक किया और सब कुछ ठीक रहा।



0

मेरे लिए, मैं एक मॉड्यूल लाइब्रेरी में जार का संदर्भ देता हूं। यह जार में प्रतीक को हल नहीं कर सकता है। इसलिए मैं अपनी स्थिति का हल ढूंढता हूं। providedरास्ते का उपयोग करें ।

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')

0

उपरोक्त सभी उत्तर मेरे काम नहीं आए। मेरी समस्या यह थी कि मेरे पास 3 मॉड्यूल थे, जिनमें से 2 समान पैकेज नाम के साथ थे

यह एंड्रॉइड स्टूडियो <= 3.2.1 के लिए ठीक था।

Android स्टूडियो> 3.2.1 के लिए, ressouce लाल था।

मैंने इसे इस उल्लेख की तरह यहाँ हल किया (मैं प्रत्येक मॉड्यूल के लिए अलग-अलग पैकेज का नाम देता हूं): कोई भी एंड्रॉइड स्टूडियो संस्करण> 3.2.1 लाल संसाधन दिखाते हैं लेकिन फिर भी संकलित करते हैं


0

मुझे निम्नलिखित चरणों का उपयोग करके एक ही मुद्दा मिला है:

  1. किसी भी यादृच्छिक संख्या में वर्गीकृत करने के लिए लाइब्रेरी संस्करण को अपडेट करें, जैसे: lib_1.0.0 -> lib_1.0.0.0

  2. सिंक सिंक

  3. सिंक त्रुटि दिखाता है

  4. संस्करण बदलने के लिए lib_1.0.0.0 -> lib_1.0.0 बदलें

  5. सिंक सिंक

त्रुटि को देखने के लिए आयात के साथ जावा फ़ाइल खोलें।


0

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

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


0

एंड्रॉइड स्टूडियो को फिर से शुरू करने से पहले मेरे पास केवल एक स्वच्छ परियोजना और पुनर्निर्माण परियोजना है, यह मेरी समस्या को हल करता है। हो सकता है कि एंड्रॉइड स्टूडियो वास्तव में इंटरफ़ेस में संदर्भ अपडेट न करें

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