appcompat-v7: 21.0.0 ': Tidak ada sumber daya yang cocok dengan nama yang diberikan: attr' android: actionModeShareDrawable '

376

Ketika mencoba menggunakan pustaka dukungan appcompat-v7 terbaru di proyek saya, saya mendapatkan kesalahan berikut:

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

Bagaimana cara saya memperbaikinya?

loeschg
sumber
1
Saya mengalami masalah ini saat gerhana. Saya memiliki lebih dari 100 kesalahan karena alat SDK Build saya tidak memperbarui ke rev 21. Namun sekarang ada kesalahan yang berbeda jadi ... buka untuk melihat kesalahan itu.
RED_
Hari ini saya menghapus dan menginstal kembali Ekstra / Android Support Library (versi 21.0.2) dan perhatikan bahwa project.properties-nya masih salah menunjuk ke target = android-19 yang merupakan akar masalah. Seharusnya 21, tapi file yang dihasilkan - tidak dapat diedit dengan tangan -. Lihat jawaban yang diterima untuk solusinya.
JulianSymes
@RED_, Tidak dapat menyelesaikan simbol 'android: Theme.Material.Light' di <style name = "AppBaseTheme" parent = "android: Theme.Material.Light"> </style> dalam valules-v21 di studio android
Pankaj Nimgade
@ PankajNimgade Saya tidak mengerti ... Anda butuh bantuan?
RED_
@RED_, ya saya benar-benar butuh bantuan, di komputer saya sepertinya saya tidak dapat mendeteksi apa pun untuk Material Theme atau apa pun yang dimulai dengan android dalam values-v21 \ styles, mohon bantu saya
Pankaj Nimgade

Jawaban:

598

Sementara jawaban loeschg benar-benar benar, saya hanya ingin menguraikannya dan memberikan solusi untuk semua IDE (Eclipse, IntellJ dan Android Studio) bahkan jika kesalahan sedikit berbeda.


Prasyarat

Pastikan Anda telah mengunduh yang terbaru extrasdan juga Android 5.0 SDKmelalui SDK-Manager.

Gambar Manajer SDK


Android Studio

Buka build.gradlefile modul-aplikasi Anda dan ubah compileSdkVersionmenjadi 21. Pada dasarnya tidak perlu mengubah targetSdkVersionVersi-SDK menjadi 21 tetapi disarankan karena Anda harus selalu menargetkan Android Build-Version terbaru .
Pada akhirnya file gradle Anda akan terlihat seperti ini:

android {
    compileSdkVersion 21
    // ...

    defaultConfig {
        // ...
        targetSdkVersion 21
    }
}

Pastikan untuk menyinkronkan proyek Anda sesudahnya.

Pengingat Android Studio Gradle Sync


Gerhana

Saat menggunakan v7-appcompatdi Eclipse Anda harus menggunakannya sebagai proyek perpustakaan. Tidak cukup hanya menyalin * .jar ke /libsfolder Anda . Silakan baca tutorial ini (klik) langkah demi langkah di developer.android.com untuk mengetahui cara mengimpor proyek dengan benar.

Segera setelah proyek diimpor, Anda akan menyadari bahwa beberapa folder di /resfolder tersebut diberi garis merah karena kesalahan seperti berikut:

Kesalahan dalam Eclipse

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

Larutan

Satu-satunya hal yang harus Anda lakukan adalah membuka project.propertiesfile android-support-v7-appcompatdan mengubah target dari target=android-19menjadi target=android-21.
Setelah itu lakukan saja Project --> Clean...agar perubahannya berlaku.


IntelliJ IDEA (tidak menggunakan Gradle)

Serupa dengan Eclipse, tidak cukup hanya menggunakan android-support-v7-appcompat.jar; Anda harus mengimpor appcompatsebagai modul. Baca lebih lanjut di StackO-Post ini (klik) .
( Catatan: Jika Anda hanya menggunakan .jarAnda akan mendapatkan NoClassDefFoundErrorsRuntime )

Ketika Anda mencoba membangun proyek, Anda akan menghadapi masalah di res/values-v**folder. Jendela pesan Anda akan mengatakan sesuatu seperti berikut:

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

Larutan

Klik kanan pada appcompatmodul -> Buka Pengaturan Modul (F4) -> [Tab Ketergantungan] Pilih Android API 21 Platform dari dropdown -> Terapkan

Pilih Platform API 21

Kemudian baru membangun kembali proyek (Build -> Rebuild Project) dan Anda baik untuk pergi.

balik
sumber
2
saya juga menghadapi masalah yang sama dalam gerhana setelah mengubah target dari target = android-19 ke target = android-21 juga mendapatkan kesalahan pada folder nilai Bung
prabhakaran
1
Ketika saya mengubah AppCompat ke 5.0 di gerhana, itu tidak lagi membangun dan folder .bin kosong.
Clive Jefferies
1
Luar biasa, sungguh saya berjuang dari 2 hari terakhir, tetapi trik Anda mengubah Android-19 menjadi 21 bekerja. Terima kasih Man
Mukesh Garg
1
Menggunakan Eclipse, saya harus memperbarui target proyek ke 21 pada semua proyek yang menggunakan perpustakaan appcompat, tidak hanya pada proyek appcompat itu sendiri.
Bianca Daniciuc
1
Saat ini saya bergulat dengan masalah sebelumnya yang disebutkan di eclipse / android. Ini benar-benar adalah beban bollocks yang tidak dapat ditembus yang tidak dapat diandalkan.
AndyUK
123

Ini kemungkinan karena Anda belum menetapkan compileSdkVersionke 21 di file build.gradle Anda. Anda juga mungkin ingin mengubah targetSdkVersionke 21.

android {
    //...
    compileSdkVersion 21

    defaultConfig {
        targetSdkVersion 21
    }
    //...
}

Ini mengharuskan Anda untuk mengunduh pembaruan SDK terbaru untuk memulai.

Android Studio SDK Manager

Setelah Anda mengunduh semua pembaruan (jangan lupa juga perbarui Perpustakaan / Repositori Dukungan Android!) Dan perbarui compileSdkVersion Anda, sinkronkan ulang proyek Gradle Anda.

Sunting: Untuk Eclipse atau pengguna IntelliJ umum

Lihat jawaban reVerse. Dia berjalan sangat teliti!

loeschg
sumber
2
Ini jawaban yang benar. Peningkatan ke 21 memerlukan ini, dependensi appcompat baru, dan Anda perlu mengunduh rev 12 layanan bermain.
sbaar
1
Dan pastikan untuk menjalankan JDK 7
Chad Bingham
1
Sementara masih benar, lihat solusi @ reVerse. Ini lebih teliti :)
loeschg
tidak menggunakan salah satu dari IDE atau Gradle ... apakah mirip ketika saya menggunakan Ant dan Notepad?
Valen
22

`Ikuti langkah-langkah di bawah ini:

ini bekerja untuk saya. Untuk mengatasi masalah ini,

1. Klik kanan pada perpustakaan appcompat_v7 dan pilih Properties

2. Sekarang, Klik Opsi Android, Tetapkan Path Proyek Build sebagai Android 5.0 (API level 21) Terapkan Perubahan.

3. Sekarang buka file project.properties di bawah pustaka appcompat_v7,

4. Atur target proyek sebagai: target = android-21

5.Sekarang Bersihkan + Bangun pustaka appcompat_v7 dan proyek Anda`

madhu527
sumber
1
Saya menggunakan cara Anda dan menetapkan target android-21 di proyek dan perpustakaan dan kemudian membersihkan keduanya dan selesai .. terima kasih.
Md Mohsin
1
Di mana saya dapat menemukan perpustakaan appcompat_v7?
SleepNot
2
Anda dapat menemukan lib appcompat_v7 di: adt-bundle-windows-x86_64 -> sdk -> \ extras \ -> android \ -> support -> v7
madhu527
Jawaban ini dikombinasikan dengan jawaban loeschg di atas menyelesaikan masalah ini di Eclipse.
Michael Todd
12

Jika Anda tidak ingin menggunakan API 21 sebagai API target, dan karena itu Anda tidak ingin menggunakan Tema Material, Anda harus menggunakan revisi yang lebih lama milik API 19>

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

Ini juga membantu menyelesaikan masalah Anda, itu hanya tergantung pada apa yang ingin Anda capai.

vandus
sumber
Saya setuju dengan kamu. Lagipula, tidak semua orang berencana untuk menargetkan SDK pada 21.
peacepassion
10

Saya mengalami masalah ini dengan layanan-play: 5.0.89. Meng-upgrade ke 6.1.11 memecahkan masalah.

pepyakin
sumber
8

Di Android Studio saya mencoba mengatur compileSdkVersiondan targetSdkVersionuntuk 19.

Solusi saya adalah mengganti di bagian bawah build.gradle, dari ini:

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

Ke pustaka appcompat versi lama:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
}
Gianfranco P.
sumber
saya menggunakan versi terbaru dari appcompact tapi sekarang saya ingin doengrade ke versi sebelumnya tapi saya mendapatkan kesalahan ini di folder arr-exploded
Antwan
3

Saya telah menambahkan proyek lain ke ruang kerja saya dan mencoba untuk merujuk aktivitas dari itu dalam file manifes, dan saya mendapatkan kesalahan ini. Masalahnya adalah saya salah merujuk perpustakaan. Inilah cara saya memperbaiki masalah:

  • Klik kanan pada proyek
  • Pilih Properties
  • Klik pada Android di menu sebelah kiri
  • Klik Tambah
  • Silakan pilih Proyek Perpustakaan

Guci masuk ke folder Android Dependencies dan kesalahan ini diperbaiki.

cinta hidup
sumber
Saya mengeksekusi urutan Anda. Kemudian ada «Jar mismatch! Perbaiki dependensi Anda »di konsol Android karena guci di libs / dan guci di proyek perpustakaan layanan appcompat dan google play yang tidak cocok (mengalami ketidakcocokan SHA-1 dan panjang file jar). Berjuang lebih jauh, saya menganggap ini sukses.
Eugene Gr. Philippov
2

Pastikan Anda membersihkan proyek Anda di studio android (atau gerhana),

Itu harus menyelesaikan masalah Anda

Brendon Sled
sumber
2
Membersihkan proyek Anda dalam hal ini tidak berfungsi, terutama jika Anda baru saja mengunduh SDK Android baru, pustaka appcompat, dll. Karena kesalahan tidak akan secara ajaib membersihkan diri mereka sendiri tanpa menemukan tautan yang hilang ke pustaka dan / atau sumber daya Android lainnya. Jawaban ReVerse benar dan terlengkap bagi mereka yang tidak tahu bagaimana menyelesaikan masalah dengan unduhan Android API level 21 terbaru sendiri.
ChuongPham
2

Meng-upgrade ke plugin gradle terbaru menyelesaikan masalah saya:

classpath 'com.android.tools.build:gradle:0.13.+'
avianey
sumber
0.14.0 sebenarnya dirilis belum lama ini
loeschg
ya, saya masih menggunakan 0,12 ... mungkin itu dapat membantu orang lain meningkatkan ke 0,13 atau 0,14
avianey
2

Setelah membuat proyek kedua di ruang kerja di gerhana, saya punya masalah ini. Saya percaya itu karena saya membuatnya dengan versi SDK yang berbeda dan ini membuat perpustakaan android-support-v7-appcompat.

Saya mencoba untuk membersihkan semuanya tetapi tidak berhasil. Pada akhirnya, saran di atas untuk mengedit project.properties dan mengubah target = android-21 dan mengatur proyek saya ke Android 5.0, memperbaikinya.

formika
sumber
2

Apa yang saya rekomendasikan adalah: (Ini berfungsi setelah beberapa hari dengan kesalahan)

-Pastikan bahwa Anda telah mengunduh:

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

-Redowload ADT

-Membuat salinan keamanan proyek Anda.

-Anda harus memiliki ADT, ruang kerja, dan proyek yang akan kami impor di disk yang sama (misalnya C: /)

  1. Sekarang hapus aplikasi compat dan proyek Anda.

  2. Dalam gerhana: File> Impor> proyek Android yang ada> Selanjutnya> Jelajahi (Folder tempat Anda memiliki ADT Anda) / sdk / ekstra / android / v7 / appcompat> Impor> Selesai

  3. Sekarang di eclipse Package Explorer: android-support-v7-appcompat / libs / Lakukan di dua JARS: Klik kanan> Build Path> Add to Build Path

  4. Klik kanan pada libs / folder> Buil Path> Configure Build Path dan periksa dua JARS ini> OK

  5. Pada bilah gerhana atas> Proyek> Bersihkan

  6. Impor proyek Anda> File> Impor> Jelajahi proyek Anda> Selesai

  7. Sekarang, Klik kanan pada projectfile dan android-support-v7-appcompat> Properties> Android> Dan pilih API terbaru yang muncul> OK

  8. Klik kanan pada projectfile> Properties> Android> Add> android-support-v7-appcompat

  9. Pada bilah gerhana atas> Proyek> Bersihkan

juldeh
sumber
2

Saya mendapat kesalahan yang sama ketika saya mengubah versi Kompilasi SDK dari API: 21 ke API: 16. Masalahnya adalah, versi appcompat . Jika Anda perlu menggunakan versi Android API yang lebih lama, maka Anda harus mengubah versi appcompat ini juga. Dalam kasus saya ( untuk API: 16 ), saya harus menggunakan appcompat-v7: 19. + .

Jadi saya mengganti dependensi di build.gradle sebagai berikut,

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

Dan pastikan Anda memiliki versi appcompat versi lama di SDK Anda masukkan deskripsi gambar di sini

mili
sumber
2

Saya up to date dengan semuanya dan masih mendapatkan kesalahan ini, tidak yakin mengapa tetapi saya pikir gambar rusak dengan cara yang aneh dan setelah mengganti gambar saya menyingkirkan kesalahan. Mungkin patut dicoba dengan gambar yang berbeda :)

DoruChidean
sumber
1

Masalah saya adalah bahwa saya memiliki perpustakaan lain yang dirujuk oleh proyek saya dan perpustakaan itu memiliki versi lain dari appcompat yang dirujuk. Inilah yang saya lakukan untuk menyelesaikan masalah:

(Anda harus mendukung proyek Anda sebelum melakukan ini)

1) Saya menghapus semua folder layout appcompat (mis: / res / layout-v11).

2) Memecahkan masalah yang muncul dari itu, biasanya kesalahan dalam menu.xml

3) Kembali ke proyek utama dan tambahkan pustaka appcompat, bersih, dan semuanya berfungsi!

trik teknologi
sumber