appcompat-v7: 21.0.0 ': ऐसा कोई संसाधन नहीं मिला जो दिए गए नाम से मेल खाता हो: attr' android: actionModeShareDadable '


376

अपनी परियोजना में नवीनतम appcompat-v7 समर्थन पुस्तकालय का उपयोग करने का प्रयास करते समय, मुझे निम्न त्रुटि मिलती है:

/Users/greg/dev/mobile/android_project/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0/res/values-v11/values.xml
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:(36, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

मैं यह कैसे तय करुं?


1
मुझे यह अंक ग्रहण में मिल रहा है। मेरे पास 100 से अधिक त्रुटियां थीं, क्योंकि मेरे एसडीके बिल्ड टूल ने 21 को संशोधित करने के लिए अपडेट नहीं किया था। अब अलग-अलग त्रुटियां हैं, हालांकि ... उन पर गौर करें।
RED_

आज मैंने एक्स्ट्रास / एंड्रॉइड सपोर्ट लाइब्रेरी (संस्करण 21.0.2) को अनइंस्टॉल और रीइंस्टॉल किया और ध्यान दिया कि इसका प्रोजेक्ट.प्रॉपरेटी अभी भी गलत तरीके से लक्ष्य = एंड्रॉइड -19 को इंगित करता है जो समस्या की जड़ है। 21 होना चाहिए, लेकिन यह एक उत्पन्न - हाथ से संपादन योग्य - फ़ाइल नहीं है। वर्कअराउंड के लिए स्वीकृत उत्तर देखें।
जूलियनस्मिस

@RED_, प्रतीक को 'android: Theme.Material.Light' में <style name = "AppBaseTheme" जनक = "android: Theme.Material.Light"> </ style> से स्टूडियो स्टूडियो
पंकज निमगडे

@PankajNimgade मुझे समझ नहीं आया ... क्या आपको मदद की ज़रूरत है?
RED_

@ RED_, हां मुझे सख्त मदद की ज़रूरत है, अपने कंप्यूटर पर मैं सामग्री थीम या ऐसी किसी भी चीज़ का पता नहीं लगा सकता, जो कि
मूल्यों-

जवाबों:


598

जबकि लेश्च का उत्तर बिलकुल सही है, मैं अभी इस पर विस्तार चाहता हूं और सभी IDE (Eclipse, IntellJ और Android Studio) के लिए एक समाधान देता हूं, भले ही त्रुटियों में थोड़ा अंतर हो।


पूर्व आवश्यकताएं

सुनिश्चित करें कि आपने नवीनतम और extrasसाथ ही Android 5.0 SDKएसडीके-प्रबंधक के माध्यम से डाउनलोड किया है ।

एसडीके प्रबंधक का चित्र


Android स्टूडियो

build.gradleअपने ऐप-मॉड्यूल की फ़ाइल खोलें और अपने compileSdkVersionको 21 में बदलें । मूल रूप से targetSdkVersionएसडीके-संस्करण को 21 में बदलना आवश्यक नहीं है, लेकिन इसकी सिफारिश की जाती है क्योंकि आपको हमेशा नवीनतम एंड्रॉइड बिल्ड-संस्करण को लक्षित करना चाहिए ।
अंत में आप ग्रेड-फाइल इस तरह देखेंगे:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

अपनी परियोजना को बाद में सिंक करना सुनिश्चित करें।

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


ग्रहण

v7-appcompatग्रहण में उपयोग करते समय आपको इसे एक पुस्तकालय परियोजना के रूप में उपयोग करना होगा। यह केवल * .jar को अपने /libsफ़ोल्डर में कॉपी करने के लिए पर्याप्त नहीं है । प्रोजेक्ट को कैसे ठीक से आयात किया जाए, यह जानने के लिए, डेवलपर . android.com पर चरण-दर-चरण ट्यूटोरियल पढ़ें (क्लिक करें)

जैसे ही प्रोजेक्ट इम्पोर्ट किया जाता है, आपको महसूस होगा कि फोल्डर में कुछ फोल्डर /resरेड-अंडरलाइन हैं, क्योंकि निम्न में से कोई त्रुटि है:

ग्रहण में त्रुटियां

error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.*'
error: Error: No resource found that matches the given name: attr 'android:actionModeShareDrawable'.

समाधान

केवल एक चीज आप क्या करना है खोलने के लिए है project.propertiesकी फ़ाइल android-support-v7-appcompatऔर से लक्ष्य को बदलने target=android-19के लिए target=android-21
बाद में बस Project --> Clean...इतना करें कि बदलाव प्रभावी हों।


इंटेलीज आईडिया (ग्रेड का उपयोग नहीं)

ग्रहण के लिए परिचित यह केवल का उपयोग करने के लिए पर्याप्त नहीं है android-support-v7-appcompat.jar; आपको appcompatएक मॉड्यूल के रूप में आयात करना होगा । इसके बारे में इस StackO-Post (क्लिक करें) पर पढ़ें ।
( नोट: यदि आप केवल रनटाइम पर .jarप्राप्त करेंगे का उपयोग कर रहे हैंNoClassDefFoundErrors )

जब आप प्रोजेक्ट बनाने की कोशिश कर रहे हैं तो आपको res/values-v**फ़ोल्डर्स में समस्याएँ आएंगी। आपकी संदेश विंडो कुछ इस तरह कहेगी:

Error:android-apt-compiler: [appcompat]  resource found that matches the given name: attr 'android:colorPrimary'.
Error:(75, -1) android-apt-compiler: [appcompat] C:\[Your Path]\sdk\extras\android\support\v7\appcompat\res\values-v21\styles_base.xml:75: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ActionButton'.
// and so on

समाधान

appcompatमॉड्यूल पर राइट क्लिक करें -> मॉड्यूल सेटिंग्स खोलें (F4) -> [निर्भरता टैब] ड्रॉपडाउन से Android API 21 प्लेटफ़ॉर्म चुनें -> लागू करें

एपीआई 21 प्लेटफार्म का चयन करें

फिर बस प्रोजेक्ट का पुनर्निर्माण करें (बिल्ड -> पुनर्निर्माण प्रोजेक्ट) और आप जाने के लिए अच्छे हैं।


2
मैं भी एक ही संभावना का सामना कर रहा हूँ ग्रहण से लक्ष्य को बदलने के बाद = android-19 को लक्ष्य = android-21 भी मान फ़ोल्डर पर त्रुटि हो रही है यार
प्रभाकरन

1
जब मैं ग्रहण में AppCompat को 5.0 में बदलता हूं, तो यह नहीं बनता है और .bin फ़ोल्डर खाली हो जाता है।
क्लाइव जेफरीज़

1
बहुत बढ़िया, वास्तव में मैं पिछले 2 दिनों से संघर्ष कर रहा था, लेकिन उर चाल बदल गया एंड्रॉइड -19 से 21 तक काम किया .. धन्यवाद आदमी
मुकेश गर्ग

1
एक्लिप्स का उपयोग करते हुए, मुझे उन सभी परियोजनाओं पर प्रोजेक्ट लक्ष्य को 21 में अपडेट करना था, जो केवल ऐपकोम्पैट लाइब्रेरी का उपयोग कर रहे थे, न कि केवल ऐप्पॉमैट प्रोजेक्ट पर।
बियांका दानिशुक

1
मैं वर्तमान में ग्रहण / एंड्रॉइड में वर्णित पिछले मुद्दों के साथ कुश्ती कर रहा हूं। यह वास्तव में अविश्वसनीय अभेद्य बोललॉक का भार है।
एंडीयुक

123

यह संभावना है क्योंकि आपने compileSdkVersionअपनी बिल्ड.ग्रेड फ़ाइल में 21 को सेट नहीं किया है । आप भी शायद अपने targetSdkVersionको 21 में बदलना चाहते हैं ।

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

इसके लिए आपको नवीनतम एसडीके अपडेट डाउनलोड करने होंगे।

Android Studio SDK Manager

एक बार जब आप सभी अपडेट डाउनलोड कर लेते हैं (एंड्रॉइड सपोर्ट लाइब्रेरी / रिपॉजिटरी, भी अपडेट नहीं करना चाहते हैं!) और अपने compileSdkVersion को अपडेट किया, अपने ग्रेड प्रोजेक्ट को फिर से सिंक करें।

संपादित करें: ग्रहण या सामान्य IntelliJ उपयोगकर्ताओं के लिए

देखें रीवर्स का जवाब वह एक बहुत अच्छी तरह से चलना है!


2
यह सही जवाब है। 21 को अपग्रेड करने के लिए, नए एप्कोमेटिक निर्भरता की आवश्यकता होती है, और आपको रिव्यू 12 प्ले सेवाओं को डाउनलोड करना होगा।
सब्बर


1
अभी भी सही होने पर, @ रीवर्स का समाधान देखें। यह अधिक पूरी तरह से :)
loeschg

आईडीई और ग्रैडल में से एक का भी उपयोग नहीं किया ... क्या यह समान है जब मैं चींटी और नोटपैड का उपयोग करता हूं?
वैलेन

22

`नीचे दिए गए चरणों का पालन करें:

मेरे लिए यह काम कर रहा है।

1. Appcompat_v7 पुस्तकालय पर क्लिक करें और गुण का चयन करें

2.अब, एंड्रॉइड विकल्प पर क्लिक करें, प्रोजेक्ट बिल्ड पथ को एंड्रॉइड 5.0 के रूप में सेट करें (एपीआई स्तर 21) परिवर्तन लागू करें।

3.अब प्रोजेक्ट पर जाएं। Appcompat_v7 लाइब्रेरी के तहत फाइल की जांच करें,

4. परियोजना लक्ष्य को इस रूप में देखें: लक्ष्य = Android-21

5.अब स्वच्छ + Appcompat_v7 पुस्तकालय और अपनी परियोजनाओं का निर्माण करें


1
मैंने आपके तरीके का इस्तेमाल किया और प्रोजेक्ट और लाइब्रेरी में android-21 टारगेट सेट किया और फिर दोनों को साफ किया और किया..थैंक।
एमडी मोहसिन

1
मुझे appcompat_v7 लाइब्रेरी कहां मिल सकती है?
नींदनाट

2
आप appcompat_v7 लिब में पा सकते हैं: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> समर्थन -> v7
madhu527

ऊपर दिए गए loeschg के उत्तर के साथ संयोजन में इस उत्तर ने इस मुद्दे को ग्रहण में हल किया।
माइकल टॉड

12

यदि आप एपीआई 21 को लक्ष्य एपीआई के रूप में उपयोग नहीं करना चाहते हैं, और इस प्रकार आप सामग्री थीम का उपयोग नहीं करना चाहते हैं, तो आपको एपीआई 19 से संबंधित एक पुराने संशोधन का उपयोग करना होगा।

compile "com.android.support:appcompat-v7:19.0.+"

यह आपकी समस्या को हल करने में भी मदद करता है, यह केवल इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं।


मैं आपसे सहमत हुँ। सब के बाद, हर कोई 21 पर sdk को लक्षित करने की योजना नहीं
बनाता है

10

मुझे प्ले-सेवाओं के साथ इस मुद्दे का सामना करना पड़ा है: 5.0.89। 6.1.11 में हल समस्या का उन्नयन।


8

में एंड्रॉयड स्टूडियो मैं स्थापित करने के लिए कोशिश कर रहा था compileSdkVersionऔर targetSdkVersionकरने के लिए 19

मेरे समाधान के निचले भाग में बदलने के लिए था build.gradle, से यह:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

Appcompat लाइब्रेरी के पुराने संस्करण में:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

मैं appcompact से एक नवीनतम संस्करण का उपयोग कर रहा था, लेकिन अब मैं पहले वाले संस्करण के लिए doengrade करना चाहता हूं, लेकिन मुझे विस्फोट-अरे फ़ोल्डर में यह त्रुटि मिल रही है
Antwan

3

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

  • प्रोजेक्ट पर राइट क्लिक करें
  • गुण का चयन करें
  • बाएं मेनू पर Android पर क्लिक करें
  • Add पर क्लिक करें
  • कृपया एक लाइब्रेरी प्रोजेक्ट चुनें

जार Android निर्भरता फ़ोल्डर में चला गया और यह त्रुटि ठीक हो गई।


मैंने आपका क्रम निष्पादित किया। तब एक «जार बेमेल था! एंड्रॉइड कंसोल में अपनी निर्भरताएं »ठीक करें क्योंकि निर्भर एपकॉम और गूगल प्ले सर्विसेज लाइब्रेरी प्रोजेक्ट्स में लीब / जार में जार मेल नहीं खा रहे थे (SHA-1 और जार फाइल की लंबाई को मिसमैच कर रहे थे)। आगे संघर्ष करते हुए, मैं इसे सफल मानता हूं।
यूजीन जीआर। फिलिप्पो

2

सुनिश्चित करें कि आप एंड्रॉइड स्टूडियो (या ग्रहण) में अपनी परियोजना को साफ करते हैं,

इसे आपके मुद्दों को हल करना चाहिए


2
इस मामले में अपने प्रोजेक्ट को साफ करने से काम नहीं चलता है, खासकर यदि आपने अभी नया एंड्रॉइड एसडीके, एपकॉम लाइब्रेरी, आदि डाउनलोड किया है, क्योंकि अन्य एंड्रॉइड लाइब्रेरी और / या संसाधनों के लापता लिंक को खोजने के बिना त्रुटियां जादुई रूप से खुद को साफ नहीं करेंगी। ReVerse का जवाब सही है और उन लोगों के लिए पूरी तरह से सही है, जो खुद के द्वारा नवीनतम Android एपीआई स्तर 21 डाउनलोड के साथ मुद्दों को हल करना नहीं जानते हैं।
चुंगपाम

2

नवीनतम ग्रेडल प्लगइन में अपग्रेड करने से मेरी समस्या हल हो गई:

classpath 'com.android.tools.build:gradle:0.13.+'

0.14.0 वास्तव में बहुत पहले नहीं जारी किया गया था
loeschg

हाँ, मैं अभी भी 0.12 का उपयोग कर रहा था ... शायद यह किसी और को 0.13 या 0.14 में अपग्रेड करने में मदद कर सकता है
एवियन ने

2

ग्रहण में कार्यक्षेत्र में दूसरी परियोजना बनाने के बाद, मुझे यह समस्या थी। मेरा मानना ​​है कि यह इसलिए है क्योंकि मैंने इसे एक अलग एसडीके संस्करण के साथ बनाया है और यह एंड्रॉइड-सपोर्ट-वी 7-ऐप्पोमैट लाइब्रेरी को ovewrote करता है।

मैंने सब कुछ साफ करने की कोशिश की लेकिन कोई फायदा नहीं हुआ। अंततः, project.properties को संपादित करने और लक्ष्य बदलने के लिए ऊपर दिए गए सुझाव = android-21 और मेरे प्रोजेक्ट को Android 5.0 पर सेट करें, इसे ठीक किया।


2

मैं क्या पुन: प्रस्तुत करता हूं: (यह त्रुटियों के साथ कई दिनों के बाद मेरे लिए काम करता है)

सुनिश्चित करें कि आपने डाउनलोड किया है:

- the Lastest SDK Platform from the latest Android version
- Android Suppor Librarie and Repository from EXTRAS 

-रेडलोड को एडीटी

-अपनी परियोजना की एक सुरक्षा प्रतिलिपि बनाएँ।

-आपके पास ADT, कार्यक्षेत्र और परियोजना होनी चाहिए जिसे हम एक ही डिस्क में आयात करेंगे (जैसे C: /)

  1. अब ऐप कॉम्पिटिटर और अपने प्रोजेक्ट को डिलीट करें।

  2. ग्रहण में: फ़ाइल> आयात> Android मौजूदा परियोजना> अगला> ब्राउज़ करें (वह फ़ोल्डर जहाँ आपका ADT है) / sdk / अतिरिक्त / Android / v7 / appcompat> आयात> समाप्त

  3. अब ग्रहण पैकेज एक्सप्लोरर में: android-support-v7-appcompat / libs / Make on two JARS: राइट क्लिक> बिल्ड पाथ> बिल्ड पाथ में जोड़ें

  4. Libs / folder> Build Path> Configure Build पर राइट क्लिक करें और इस दो JARS> OK को चेक करें

  5. ऊपरी ग्रहण बार> प्रोजेक्ट> क्लीन पर

  6. अपनी परियोजना आयात करें> फ़ाइल> आयात करें> अपनी परियोजना ब्राउज़ करें> समाप्त करें

  7. अब, प्रोजेक्टफाइल और android-support-v7-appcompat> Properties> Android> पर राइट क्लिक करें और नवीनतम एपीआई का चयन करें: "ठीक"

  8. प्रोजेक्टफाइल> प्रॉपर्टीज> एंड्रॉइड> ऐड> एंड्रायड-सपोर्ट-v7-appcompat पर राइट क्लिक करें

  9. ऊपरी ग्रहण बार> प्रोजेक्ट> क्लीन पर


2

मुझे वही त्रुटि मिली जब मैंने एपीआई: 21 से एपीआई: 16 तक संकलन एसडीके संस्करण को बदल दिया। समस्या थी, appcompat संस्करण। यदि आपको Android API के पुराने संस्करण का उपयोग करने की आवश्यकता है, तो आपको इस appcompat संस्करण को भी बदलना होगा। मेरे मामले में ( API: 16 के लिए ), मुझे appcompat-v7: 19. + का उपयोग करना था ।

इसलिए मैं build.gradle में निर्भरता को निम्नानुसार प्रतिस्थापित करता हूं ,

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}

और सुनिश्चित करें कि आपके पास अपने SDK पर पुराने संस्करणों के Appcompat संस्करण हैं यहां छवि विवरण दर्ज करें


2

मैं सब कुछ के साथ अद्यतित था और फिर भी यह त्रुटि मिली, निश्चित रूप से क्यों नहीं, लेकिन मुझे लगता है कि छवि को एक अजीब तरीके से दूषित किया गया था और छवि को बदलने के बाद मुझे त्रुटि से छुटकारा मिल गया। एक अलग छवि के साथ प्रयास करने के लायक हो सकता है :)


1

मेरी समस्या यह थी कि मेरे पास अन्य पुस्तकालय थे जिन्हें मेरी परियोजना ने संदर्भित किया था और उन पुस्तकालयों का एक और संस्करण था एप्कोम्पैट संदर्भित। इस मुद्दे को हल करने के लिए मैंने यही किया है:

(ऐसा करने से पहले आपको अपना प्रोजेक्ट वापस करना चाहिए)

1) मैंने सभी एप्कोमेट लेआउट फोल्डर (उदा: / res / layout-v11) को डिलीट कर दिया।

2) उस से उत्पन्न समस्याओं को हल किया, आमतौर पर menu.xml में एक त्रुटि

3) मुख्य परियोजना पर वापस जाएँ और एपकॉम लाइब्रेरी, स्वच्छ और सब कुछ जोड़ दें!

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