appcompat-v7: 21.0.0 ': Verilen adla eşleşen kaynak bulunamadı: attr' android: actionModeShareDrawable '


376

Projemde en son appcompat-v7 destek kitaplığını kullanmaya çalışırken aşağıdaki hatayı alıyorum:

/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'.

Bunu nasıl düzeltirim?


1
Bu sorunu tutulmaya alıyorum. 100'den fazla hatayla karşılaştım, çünkü SDK Derleme araçlarım rev 21'e güncellenmedi. Şimdi farklı hatalar aldım ... bunlara bakmak için gidin.
RED_

Bugün Extras / Android Destek Kitaplığı'nı (sürüm 21.0.2) kaldırdım ve yeniden yükledim ve project.properties'in hala sorunun temelini hedef = android-19'a yönlendirdiğini unutmayın. 21 olmalı, ancak oluşturulan - elle düzenlenemez - bir dosyadır. Geçici çözüm için kabul edilen cevaba bakın.
JulianSymes

@RED_, <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </style> sembolünün android stüdyoda valules-v21'de çözülememesi
Pankaj Nimgade

@PankajNimgade Anlamıyorum ... yardıma ihtiyacın var mı?
KIRMIZI_

@RED_, evet umutsuzca yardıma ihtiyacım var, bilgisayarımda Malzeme Teması için herhangi bir şey tespit edemiyorum ya da değerler-v21 \ stillerinde android ile başlayan bir şey, lütfen bana yardım et
Pankaj Nimgade

Yanıtlar:


598

Loeschg'nin cevabı kesinlikle doğru olsa da, üzerinde biraz durmak ve hatalar biraz farklı olsa bile tüm IDE'ler (Eclipse, IntellJ ve Android Studio) için bir çözüm vermek istiyorum .


Ön Gereksinimler

En son indirdiğinizden emin olun extras yanı sıra Android 5.0 SDKaracılığıyla SDK-Yöneticisi.

SDK Yöneticisinin resmi


Android Studio

build.gradleUygulama modülünüzün dosyasını açın ve compileSdkVersion21 olarak değiştirin. targetSdkVersionSDK Sürümü'nü 21 olarak değiştirmek gerekli değildir, ancak her zaman en son Android Derleme Sürümü'nü hedeflemeniz gerektiğinden önerilir .
Sonunda gradle dosyası şöyle görünecektir:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Daha sonra projenizi senkronize ettiğinizden emin olun.

Android Studio Gradle Sync hatırlatıcısı


Eclipse

Kullanırken v7-appcompatEclipse bir kütüphane projesi olarak kullanmak zorunda. * .Jar dosyasını /libsklasörünüze kopyalamak yeterli değildir . Lütfen oku bu (tıklayın) hakkında adım adım eğitim developer.android.com düzgün projeyi nasıl içe bilmek için.

Proje içe aktarılır aktarılmaz, /resaşağıdaki gibi hatalar nedeniyle klasördeki bazı klasörlerin kırmızı altı çizili olduğunu fark edeceksiniz :

Tutulmadaki Hatalar

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'.

Çözüm

Yapmanız gereken tek şey, project.propertiesdosyasının dosyasını açmak android-support-v7-appcompatve hedefi olarak target=android-19değiştirmek target=android-21.
Daha sonra sadeceProject --> Clean... değişikliklerin yürürlüğe girmesi için bir işlem yapın.


IntelliJ IDEA (Gradle kullanmıyor)

Eclipse ile benzerlik için sadece kullanmak yeterli değildir android-support-v7-appcompat.jar; appcompatmodül olarak içe aktarmanız gerekir . Bu StackO-Post hakkında daha fazla bilgi edinin (tıklayın) .
( Not: Yalnızca Çalışma .jarSüresinde alacaksınızNoClassDefFoundErrors )

Projeyi oluşturmaya çalıştığınızda, res/values-v**klasörlerde sorunlarla karşılaşırsınız . Mesaj pencereniz aşağıdaki gibi bir şey söyleyecektir:

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

Çözüm

appcompatModüle sağ tıklayın -> Modül Ayarlarını Aç (F4) -> [Bağımlılık Sekmesi] Açılır listeden Android API 21 Platformunu seçin -> Uygula

API 21 Platformunu Seçin

Ardından projeyi yeniden oluşturun (Oluştur -> Projeyi Yeniden Oluştur) ve hazırsınız.


2
ben de hedef = android-19 hedefe = android-21 hedef değiştirdikten sonra tutulma aynı probla karşı karşıya da değer klasör dostum hata alıyorum
Prabhakaran 21:06

1
Eclipse AppCompat 5.0 olarak değiştirdiğimde, artık oluşturmaz ve .bin klasörü boştur.
Clive Jefferies

1
Harika, gerçekten son 2 gün mücadele, ama ur hile değişiklik Android-19 21 çalıştı .. Teşekkürler Adam
Mukesh Garg

1
Eclipse kullanarak, yalnızca uygulama uygulaması projesinde değil, uygulama uygulaması kitaplığını kullanan tüm projelerde proje hedefini 21 olarak güncellemek zorunda kaldım.
Bianca Daniciuc

1
Şu anda eclipse / android'de bahsedilen önceki konularla güreşiyorum. Gerçekten güvenilmez geçilmez kilitler bir yük.
AndyUK

123

Bunun nedeni compileSdkVersion, build.gradle dosyanızda 21'inizi ayarlamadığınızdır . Ayrıca muhtemelen targetSdkVersion21 olarak değiştirmek istersiniz .

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Bu, başlamak için en son SDK güncellemelerini indirmenizi gerektirir.

Android Studio SDK Yöneticisi

Tüm güncellemeleri indirdikten sonra (Android Destek Kütüphanesi / Deposunu da güncellemeyi unutmayın!) Ve compileSdkVersion'unuzu güncelledikten sonra Gradle projenizi yeniden senkronize edin.

Düzenleme: Eclipse veya genel IntelliJ kullanıcıları için

Bkz. ReVerse'nin cevabı. İçinde çok kapsamlı bir yürüyüş var!


2
Bu doğru cevap. 21 sürümüne yükseltmek için yeni uygulama uyumu bağımlılıkları gerekir ve oyun hizmetlerinin devir 12'sini indirmeniz gerekir.
sbaar

1
Ve JDK 7'yi çalıştırdığınızdan emin olun
Chad Bingham

1
Hala doğru olsa da, @ reVerse'nin çözümüne bakın. Daha kapsamlı :)
loeschg

ne IDE'lerden ne de Gradle'ı kullanmadım ... Ant ve Not Defteri'ni kullandığımda benzer mi?
Valen

22

`Aşağıdaki adımları izleyin:

Bu sorunu çözmek için,

1. sağ appcompat_v7 kütüphanesini tıklayın ve Özellikler'i seçin

2.Şimdi, Android Seçeneğine tıklayın, Proje Oluşturma Yolunu Android 5.0 (API seviye 21) olarak değiştirin Değişiklikleri Uygulayın.

Şimdi appcompat_v7 kütüphanesi altındaki project.properties dosyasına gidin,

4.Proje hedefini şu şekilde ayarlayın: target = android-21

5.Şimdi Clean + Build appcompat_v7 kütüphanesi ve projeleriniz`


1
Yolunu kullandım ve proje ve kütüphanede android-21 hedefini belirledim ve sonra her ikisini de temizledim ve teşekkürler.
Md Mohsin

1
appcompat_v7 kütüphanesini nerede bulabilirim?
SleepNot

2
appcompat_v7 lib'i şu adreste bulabilirsiniz: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> support -> v7
madhu527

Loeschg'nin yukarıdaki cevabı ile birlikte bu cevap Eclipse'deki bu sorunu çözdü.
Michael Todd

12

API 21'i hedef API olarak kullanmak istemiyorsanız ve bu nedenle Materyal Temasını kullanmak istemiyorsanız, API 19>

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

Bu aynı zamanda probleminizi çözmeye yardımcı olur, sadece ne elde etmek istediğinize bağlıdır.


Size katılıyorum. Sonuçta, herkes
sdk'yi

10

Oyun hizmetleri ile bu sorunla karşılaştım: 5.0.89. 6.1.11 sürümüne yükseltme sorunu çözüldü.


8

Android Studio'da compileSdkVersionve targetSdkVersionöğelerini19 .

Benim çözümüm altındaki değiştirmekti build.gradle, gelen bu:

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

Appcompat kütüphanesinin eski sürümüne:

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

Ben appcompact en son sürümünü kullanıyordum ama şimdi önceki sürüme doengrade istiyorum ama patladı-arr klasöründe bu hatayı alıyorum
Antwan

3

Çalışma alanıma başka bir proje ekledim ve bildirim dosyasında bir etkinliğe başvurmaya çalışıyordum ve bu hatayı alıyordum. Sorun kütüphaneye yanlış atıfta bulunmamdı. Sorunu şu şekilde çözdüm:

  • Projeye sağ tıklayın
  • Özellikler seçin
  • Soldaki menüden Android'i tıklayın
  • Ekle'ye tıklayın
  • Lütfen bir Kütüphane Projesi seçin

Kavanoz Android Bağımlılıklar klasörüne girdi ve bu hata düzeltildi.


Dizinizi yürüttüm. Sonra bir «Jar uyuşmazlığı! Bağımlılıklarınızı düzeltin ». Daha da ileri giderek, bunu bir başarı olarak görüyorum.
Eugene Gr. Philippov

2

Projenizi android stüdyosunda (veya tutulma) temizlediğinizden emin olun,

Sorunlarınızı çözmeli


2
Bu durumda projenizi temizlemek işe yaramıyor, özellikle yeni bir Android SDK, uygulama kompleksi vb. ReVerse'ın cevabı, en son Android API seviyesi 21 ile indirilen sorunları kendileri nasıl çözeceğini bilmeyenler için doğru ve en kapsamlı.
ChuongPham

2

En yeni gradle eklentisine yükseltme sorunumu çözüyor:

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

0.14.0 aslında çok uzun zaman önce serbest bırakılmadı
loeschg

evet, hala 0.12 kullanıyordum ... belki başka birine 0.13 veya
0.14'e

2

Tutulma çalışma alanında ikinci bir proje oluşturduktan sonra bu problemi yaşadım. Bunun farklı bir SDK sürümü ile oluşturduğuma ve bu android-support-v7-appcompat kütüphanesini yazdığına inanıyorum.

Her şeyi temizlemeye çalıştım ama boşuna. Nihayetinde, project.properties düzenlemek ve target = android-21 değiştirmek ve projemi Android 5.0 olarak ayarlamak için yukarıdaki öneri düzeltti.


2

Ne tavsiye ederim: (Bu hata ile günlerce bana çalışır)

- İndirdiğinizden emin olun:

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

-ADT'yi yeniden yükleyin

-Projenizin güvenlik kopyasını alın.

- Aynı diskte içe aktaracağımız ADT'ye, çalışma alanına ve projeye sahip olmalısınız (örn. C: /)

  1. Şimdi uygulamayı ve projenizi silin.

  2. Tutulmada: Dosya> İçe Aktar> Android mevcut proje> Sonraki> Gözat (ADT'nize sahip olduğunuz klasör) / sdk / extras / android / v7 / appcompat> İçe Aktar> Son

  3. Şimdi tutulma Paket Gezgini'nde: android-support-v7-appcompat / libs / İki JAR'da olun: Sağ tıklayın> Yol Oluştur> Yol Oluştur'a Ekle

  4. Libs / klasör üzerine sağ tıklayın> Buil Yolu> Derleme Yolunu Yapılandırın ve bu iki JARS'ı kontrol edin> Tamam

  5. Üst tutulma çubuğunda> Proje> Temizle

  6. Projenizi içe aktarın> Dosya> İçe Aktar> Projenize göz atın> Son

  7. Şimdi, proje dosyasına sağ tıklayın ve android-support-v7-appcompat> Özellikler> Android> Ve görünen en son API'yı seçin> Tamam

  8. Proje dosyasına sağ tıklayın> Özellikler> Android> Ekle> android-support-v7-appcompat

  9. Üst tutulma çubuğunda> Proje> Temizle


2

SDK Derleme sürümünü API: 21 yerine API: 16 olarak değiştirdiğimde aynı hatayı aldım. Sorun, appcompat sürümü idi. Android API'sinin daha eski bir sürümünü kullanmanız gerekiyorsa, bu uygulama uyumlu sürümünü de değiştirmeniz gerekir. Benim durumumda ( API: 16 için ), appcompat-v7: 19. + kullanmak zorunda kaldım .

Bu yüzden build.gradle içindeki bağımlılıkları aşağıdaki gibi değiştiriyorum ,

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

SDK'nızda daha eski uygulama uyumu sürümleri olduğundan emin olun resim açıklamasını buraya girin


2

Ben her şeyi ile güncel ve hala bu hatayı aldım, emin değilim ama görüntü garip bir şekilde bozuk olduğunu düşünüyorum ve görüntü değiştirdikten sonra ben hatadan kurtuldum. Farklı bir görüntü ile denemeye değer olabilir :)


1

Benim sorunum benim proje başvurulan diğer kütüphaneler vardı ve bu kütüphaneler appcompat başvurulan başka bir sürümü vardı. Bu sorunu çözmek için yaptım:

(Bunu yapmadan önce projenizi yedeklemelisiniz)

1) Tüm uygulama uyumu düzen klasörlerini sildim (örn: / res / layout-v11).

2) Bundan çıkan sorunlar çözüldü, genellikle menu.xml'de bir hata

3) Ana projeye geri dönün ve appcompat kütüphanesi ekleyin, temiz ve her şey çalışıyor!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.