Tidak Dapat Menemukan Theme.AppCompat.Light untuk Dukungan Android ActionBar Baru


354

Saya mencoba menerapkan perpustakaan dukungan ActionBar baru yang dirilis oleh Google beberapa hari yang lalu. Di masa lalu, saya telah berhasil mengimplementasikan ActionBarSherlock tanpa masalah menggunakan metode yang sama yang tercantum pada halaman Pengaturan Perpustakaan Dukungan Google Developer - menggunakan panduan tentang cara memasukkan sumber daya (yang mirip dengan bagaimana ActionBarSherlock melakukannya). Saya memiliki proyek perpustakaan dimuat ke proyek saya sendiri sebagai perpustakaan juga.

Saya tahu perpustakaan memuat baik-baik saja. Ketika, alih-alih memperluas Aktivitas di MainActivity.java saya, saya mengubahnya untuk memperluas ActionBarActivity (sesuai instruksi Google), tidak ada kesalahan terjadi - dan mengimpor dengan benar.

Aku bahkan mencoba melewati file style.xml dan menambahkan @style/Theme.AppCompat.Lightsecara langsung ke dalam AndroidManifest.xml untuk kedua <application>dan <activity>dengan android:theme="@style/ThemeAppCompat.Light"dengan semua upaya yang mengakibatkan kesalahan yang sama.

Sekarang masalahnya adalah saya tidak bisa mengubahnya untuk mengubah tema, apalagi membangun tanpa membuat kesalahan. Di bawah ini adalah kesalahan yang saya terima, diikuti oleh file style.xml yang saya ubah untuk menggunakan tema baru.

Saya memiliki pengalaman moderat bekerja dengan aplikasi Android dan menjalankan Eclipse dengan versi terbaru dari Support Libraries dan SDK yang dikompilasi dengan API 18 (Android 4.3).

Kesalahan Diterima Saat Membangun

error: Error retrieving parent for item: Tidak ditemukan sumber daya yang cocok dengan nama yang diberikan '@ style / Theme.AppCompat.Light'. styles.xml / ActBarTest / res / values ​​line 3 Masalah Android AAPT

style.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.ProsoftStudio.ACTest" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>

Ada saran? Ini tidak pernah menjadi masalah dengan ActionBarSherlock. Saya ingin bekerja menggunakan perpustakaan dukungan baru ini. Hampir sepertinya .jar memuat, tetapi bukan sumber dayanya.


1
Cobalah untuk membersihkan proyek, mungkin Anda perlu memuat ulang dependensi sehingga gaya dari AppCompact dapat memuat ulang juga
TheWizKid95

2
@ TheWizKid95 Saya melakukan pembersihan pada aplikasi saya, saya mencoba untuk mengimplementasikan dan perpustakaan. Tidak ada yang menghasilkan kode yang berubah menurut Eclipse dan itu tidak memperbaiki masalah apa pun.
Brandon Enriquez

Sudahkah Anda menambahkan perpustakaan dukungan dengan Resources? Tambahkan toples ke libs tidak cukup.
Gabriele Mariotti

@GabrieleMariotti Ya saya menambahkan sumber daya serta perpustakaan proyek khusus seperti yang diinstruksikan oleh Google.
Brandon Enriquez

Apa yang berhasil bagi saya adalah menambahkannya sebagai proyek ke ruang kerja. Hanya mengimpor toples dan menambahkannya ke buildpath tidak berhasil.
Johan

Jawaban:


386

Yang perlu Anda lakukan selanjutnya:

  1. File->Import (android-sdk\extras\android\support\v7). Pilih "AppCompat"
  2. Project-> properties->Android. Di perpustakaan bagian "Tambah" dan pilih "AppCompat"
  3. Itu semuanya!

Catatan: jika Anda menggunakan "android: showAsAction" pada item menu, Anda perlu mengubah awalan android seperti pada contoh http://developer.android.com/guide/topics/ui/actionbar.html


65
Ini tidak bekerja untuk saya. Saya melakukan persis apa yang ditulis di sini, tetapi berakhir dengan ratusan sumber Tidak ditemukan yang cocok dengan kesalahan nama. Sumber daya, yang hilang adalah gaya yang termasuk dari API 11 dan di atas, tetapi hal ini harus bekerja dari API 7. Apakah ada beberapa koneksi yang saya lewatkan!?!
apocalypz

5
Memiliki masalah yang serupa, tema Theme.AppCompat.Light.NoActionBar tidak ada di perpustakaan appcompat saya.
JMRboosties

9
Di bawah File-Impor saya tidak dapat menemukan 'android-SDK'. Saya hanya melihat 'andoird'. Siapa saja?
shahar eldad

2
apocalypz, saya pikir Anda kehilangan sumber daya karena Anda telah mengimpor perpustakaan tanpa sumber daya. di sini adalah tautan untuk "Menambahkan perpustakaan dengan sumber daya" developer.android.com/tools/support-library/…
Hades200621

1
Mengikuti langkah-langkah di atas + tambahkan sdk \ ekstra \ android \ support \ v13android-support-v13.jar ke direktori libs proyek akan menyelesaikan masalah.
Wasim A.

119

Jika, seperti saya, Anda mengikuti tutorial Android di http://developer.android.com/training/basics/actionbar/setting-up.html dan terus mendapatkan kesalahan ini, cobalah untuk mengubah AppBaseThemegaya di semua styles.xmlfile. Secara terperinci:

  1. Dalam file, res/values/styles.xmlubah baris:

    <style name="AppBaseTheme" parent="android:Theme.Light">

    untuk:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
  2. Dalam file, res/values-v11/styles.xmlubah baris:

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">

    untuk:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
  3. Dalam file, res/values-v14/styles.xmlubah baris:

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">

    untuk:

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

Sekarang aplikasi harus berjalan dengan baik.


11
Ya ini bekerja untuk saya. Hal utama yang perlu diperhatikan adalah bahwa dalam atribut induk "android:" awalan yang dibangun di tema (gaya) sementara nilai tanpa awalan ini referensi gaya Anda sendiri, atau gaya di perpustakaan yang telah Anda tautkan ... seperti dukungan android -v7-appcompat.
John Bentley

Tidak ada res/values/styles.xmldalam proyek Android baru. Setidaknya tidak ketika Anda membuatnya android create project.
weberc2

Anda mendapatkan styles.xml saat Anda membuat proyek dengan wizard pilih aplikasi layar penuh dan sembunyikan kontrol
JJ_Coder4Hire

8
Tidak ada yang berhasil untuk saya ... 4 jam sudah terbuang sia-sia. Saya masih mendapatkan Tidak ada sumber daya yang cocok dengan nama yang diberikan (di 'tema' dengan nilai '@ style / Theme.AppCompat.Light'). Hampir menyerah.
c.fogelklou

2
Saya baru saja mengubah mereka dengan cara lain, dan memang itulah yang harus terjadi dalam proyek saya.
John

28

Ini adalah masalah yang dapat terjadi di Android Studio jika Anda memodifikasi Modul Struktur Proyek. Dalam hal ini Anda mungkin perlu menambahkan dependensi lagi. Dalam editor teks, edit file 'build.gradle' untuk menyertakan dependensi yang diperlukan:

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

Ini harus memperbarui file '{your_project_name} .iml' Anda dengan komponen lib:

<orderEntry type="library" exported="" name="appcompat-v7-19.0.1" level="project" />

1
Ingatlah ada 2 * file .IML. Yang dengan entri perpustakaan terdapat dalam subfolder proyek dan memiliki nama file huruf kecil.
David Douglas

2
Ini memperbaiki masalah saya. menambahkan appcompat ke dependensi di build.gradle dalam berfungsi. Saya menyesal untuk mengatakan saya mengedit secara manual untuk mencocokkan proyek lain yang memecahkan banyak hal!
JJ_Coder4Hire

28

Saya akan membagikan pengalaman saya dengan masalah ini. Saya menjadi gila karena ini, tetapi saya menemukan bahwa masalahnya adalah bug dengan Eclipse itu sendiri, bukan kode saya: Dalam eclipse, tidak dapat merujuk proyek perpustakaan android di proyek android lain

Jadi, jika Anda memiliki Perpustakaan Dukungan Android di drive C: dan proyek Anda di drive D: di komputer Anda, Eclipse tidak akan berfungsi dengan benar dan tidak akan tahu di mana Perpustakaan Dukungan Android berada (centang hijau berubah menjadi palang merah ). Untuk mengatasi ini, Anda perlu memindahkan kedua proyek ke hard drive yang sama.


4
Terima kasih. Itu adalah situasi saya. Pada langkah 1 (File-> Impor (android-sdk \ ekstra \ android \ support \ v7). Pilih "appcompat"), Anda perlu memeriksa "salin ke ruang kerja".
Hong

Saya menghadapi masalah serupa. Terima kasih banyak, itu sangat sulit
SILINIK

Masalah yang sama di AndroidStudio. Saya hanya menghabiskan waktu 3 jam untuk mencari tahu hal ini. Terima kasih!
Ruben Martinez Jr.

Jup. Dapat mengonfirmasi ini..IntellJ memiliki masalah yang persis sama, setidaknya dengan AppCompat ... terbuang 4 jam untuk masalah ini.
puelo

Ini juga solusi bagi saya. Menyalin proyek appcompat_v7 ke drive yang sama dengan proyek target dan menambahkannya sebagai lib membuatnya berfungsi tanpa masalah.
MayaPosch

23

Saya melakukan hal berikut dalam Eclipse dengan proyek Android Support Library ( APL ) dan Proyek Utama ( MP ):

  1. Memastikan kedua APL dan MP memiliki hal yang sama minSdkVersiondan targetSdkVersion.

  2. Menambahkan APL sebagai dependensi build untuk MP :

    1. Masuk ke "Properties> Java Build Path" MP , dan kemudian

    2. Memilih tab "Proyek" dan menambahkan APL .

  3. Dalam properti MP , di bawah "Android", menambahkan referensi ke APL di bawah pustaka.

1 dan 2 mendapat referensi ke kelas Java yang berfungsi dengan baik ... namun saya masih melihat kesalahan dalam manifest.xmluntuk MP ketika mencoba referensi @style/Theme.AppCompat.Lightdari APL . Ini hanya hilang ketika saya melakukan langkah 3.


9
Jelas menggunakan "@ style / Theme.AppCompat ..." daripada "@android: style / Theme.AppCompat ...". Ini ditambah # 3 dari jawaban ini memecahkan masalah saya.
BeccaP

Poin 2 tampaknya salah. Ini mengarah ke pesan kesalahan log build seperti yang dijelaskan dan diperbaiki di sini: stackoverflow.com/questions/18421274/…
OneWorld

18

Agak terlambat tapi di sini adalah bagaimana saya menyelesaikannya di AndroidStudio!

Klik kanan pada aplikasi untuk membuka properti Klik kanan pada aplikasi untuk membuka properti

Pergi ke Dependensi dan klik tanda '+' dan pilih dependensi perpustakaan. Pergi ke Dependensi dan klik tanda '+' dan pilih dependensi perpustakaan Pilih appcompat-v7 Pilih appcompat-v7


12

Solusi IntelliJ IDEA.

1. Jalankan Android SDK Manager dan pasang Liburary Dukungan SDK dan Android terbaru . Versi SDK dan Android Libarary Dukungan harus sama ! 23 dalam kasus saya. Varian lain akan memberi Anda kesalahan. 2. Ubah versi SDK dari proyek IDEA Anda ke yang terakhir yang Anda instal pada langkah sebelumnya. (ps. Anda tidak boleh menggunakan Maven).
masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

3. Tambahkan Modul baru dari sumber yang ada ke proyek IDEA Anda.
masukkan deskripsi gambar di sini

4. Tambahkan proyek AppCompat. !!! Harus di bawah SDK terakhir juga! (ps. Katakan "Ya" di mana saja dalam proses langkah ini)
masukkan deskripsi gambar di sini

5. Buka pengaturan Modul Proyek utama Anda dan tambahkan 3 dependensi berikutnya:

5.1. Ketergantungan Modul. Memilih android-support-v7-appcompat
masukkan deskripsi gambar di sini

5.2. 2 pc. Ketergantungan Perpustakaan. Tambahkan android-sdk \ ekstra \ android \ support \ v7 \ appcompat \ libs \ android-support-v4.jar dan android-support-v4 \ android-support-v7-appcompat.jar
masukkan deskripsi gambar di sini

Secara total akan menjadi:
masukkan deskripsi gambar di sini

6. Sangat penting !!!
Tambahkan tema dengan awalan @style (bukan yang lain!) .
masukkan deskripsi gambar di sini



Solusi Android Studio.

1. Jalankan Android SDK Manager dan pasang Liburary Dukungan SDK dan Android terbaru . Versi SDK dan Android Libarary Dukungan harus sama ! 23 dalam kasus saya. Varian lain akan memberi Anda kesalahan.
masukkan deskripsi gambar di sini

2. Tambahkan di sebelah build.gradle

dependencies {
    compile 'com.android.support:appcompat-v7:23.0.1'
} 

PS Jika Anda baru dalam pengembangan Android, saya sangat menyarankan Anda pindah ke Android Studio & Gradle sekarang - Anda akan mendapatkan cara paling sederhana untuk mengelola aplikasi Android Anda.


Jawaban terbaik yang pernah saya temukan di SO tentang android
Alex Jolig

10

Untuk Android Studio 1.2.2

Jatuhkan "android" dari nilai parentatribut:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

7

Anda memerlukan referensi $ ANDROID_SDK / ekstra / android / support / v7 / appcompat


Anda keberatan masuk ke detail lebih lanjut tentang bagaimana tepatnya referensi itu? Saya sudah mereferensikan folder itu sebagai petunjuk pada Pengembang Android. Ikuti arahan persis seperti yang dinyatakan di situs web mereka. Saya tahu ini sedang direferensikan setidaknya sebagian karena ActionBarActivity diperpanjang tanpa kesalahan.
Brandon Enriquez

3
referensi appcompatsebagai Perpustakaan Android, sumber daya proyek utama Anda dapat menemukan tema dari appcompat
Crossle Song

Itu berhasil. Saya sebelumnya melakukannya di dalam Java Build Path.
Brandon Enriquez

5

Untuk IntelliJ IDEA atau Android Studio:

Tambahkan ini ke file build app.gradle

dependencies {
    compile "com.android.support:appcompat-v7:21.0.+"
} 

Ganti -v:xx.0+, dengan target build Anda, jika Anda memiliki 19 platform maka itu harus seperti:

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

3

Ikuti langkah-langkah @rcdmk. Hapus dukungan android v4.jar di proyek ANDA. Ini bertentangan dengan versi terbaru yang baru ditemukan di appcompat.


3

Saya memiliki masalah yang sama dan menghabiskan 4-5 jam untuk solusi. Masalah saya terpecahkan dengan;

  1. Dari manajer SDK hapus paket "Android Support Library" dan "Android Support Repository".
  2. Instal ulang "Perpustakaan Dukungan Android" dan "Gudang Dukungan Android"
  3. Hapus "android-support-v7-appcompat" atau "appcompat_v7 apa lagi yang Anda miliki di proyek Anda.
  4. Impor android-support-v7-appcompat dari "adt-bundle-windows-x86_64-20140702 \ sdk \ ekstra \ android \ dukungan \ v7 \ appcompat"
  5. Pilih proyek Anda dan dari file pilih properti dan temukan Java Build Path dan kemudian dari tab "Project" hapus apa lagi di sana dan kemudian Tambahkan. dan Anda harus melihat "android-support-v7-appcompat", pilih dan tambahkan ke tab Project.
  6. Periksa file project.properties Anda di bawah file Project Anda, Anda akan melihat seperti ini; target = android-21 android.library.reference.1 = .. / android-support-v7-appcompat lalu periksa file AndroidManifest.xml apakah targetnya 21 atau apa lagi yang Anda pilih. Periksa juga referensi perpustakaan yang sama dengan perpustakaan Anda yang dipilih sebelumnya.

Semoga Anda akan menemukan solusi Anda.


1
Apa yang membantu saya adalah meningkatkan Pustaka Dukungan Android saya menggunakan manajer SDK, menghapus pustaka appcompat lama dari ruang kerja, mengimpor kembali pustaka appcompat yang baru diperbarui (dan menyalin ke ruang kerja) dan kemudian membangun.
Varun

3

Masalah saya teratasi melalui Langkah-langkah berikut

  1. File-> Impor (android-sdk \ ekstra \ android \ support \ v7 \ appcompat)
  2. Klik kanan Project-> properties-> Android. Di perpustakaan bagian "Tambah" dan pilih pustaka appcompat yang termasuk dalam langkah 1
  3. Hapus semua file dari direktori libs proyek
  4. tambahkan file berikut ke direktori libs proyek <SDK-PATH>\extras\android\support\v13android-support-v13.jar

    Mulai ulang Eclipse jika diperlukan. Itu dia. Masalah Anda harus dihilangkan.


senang itu membantu seseorang :)
Wasim A.

2

bekerja:

<style name="MyApp" parent="Theme.AppCompat.Light">
</style>
<style name="MyApp" parent="@style/Theme.AppCompat.Light">
</style>
<style name="Theme.AppCompat.Light.MyApp">
</style>

2

Karena dialog Impor berbeda di Android Studio 1.0.1, saya tidak bisa mengaktifkan versi Svyatoslav Lobachs.

Alih-alih, saya mengunduh "Android Support Repository" di SDK Manager. Kemudian ditambahkan

dependencies {
...
compile "com.android.support:appcompat-v7:18.0.+"
}

untuk build.gradle. Bekerja untukku.



1

Saya mengalami masalah yang sama dengan OP setelah mengklik kanan pada proyek saya dan memilih Tutup Proyek Yang Tidak Terkait .

Dalam kasus saya, saya menyelesaikan masalah dengan membuka kembali proyek appcompat_v7 dan membersihkan / membangun kembali kedua proyek.


1

Itu terjadi pada saya ketika Eclipse (Luna) / AndroidSDK (bukan Android Stduio) digunakan dengan alat dan perpustakaan terbaru pada 14 Januari 2015 selama proyek seperti HelloWorld. Ketika saya menginstal alat-alat itu dan menjadikan HelloWorld aplikasi pertama, saya menerima semua defaultnya. - Ini masalah dalam kasus saya.

Pertama, periksa apakah perpustakaan "Android Support Library" diinstal atau tidak. Jika tidak, instal. Ini tidak diinstal secara default. Anda dapat melakukan semuanya di "Android SDK manager" yang tersedia di menu.

(Android SDK Manager -> Extra -> Android Support Library)

Berkat, (seorang debitur) <> <


1

Solusi tercepat:

klik kanan pada proyek -> alat Android -> Tambahkan dukungan perpustakaan ..

masukkan deskripsi gambar di sini


0

Saya melakukan kesalahan yang sangat konyol untuk ini. Ketika saya mendapatkan kesalahan yang sama setiap kali saya tidak tahu apa yang salah. kemudian diklik saya bahwa setelah saya menutup semua proyek di ruang kerja saya dan itu adalah waktu sejak semua masalah dimulai. SO, cukup periksa apakah "appcompat_v7" Anda tidak ditutup. Jika sudah maka buka proyek dengan klik dua kali lalu bersihkan dan bangun proyek Anda lagi. Dalam kasus saya kesalahan sudah hilang. Selamat coding!


0

Saya tidak yakin apakah perpustakaan dukungan v13 tersedia ketika pertanyaan ini diposting, tetapi jika seseorang masih berjuang, saya telah melihat bahwa menambahkan android-support-v13.jarakan memperbaiki semuanya. Beginilah cara saya melakukannya:

  1. Klik kanan pada proyek -> Properties
  2. Pilih Java Build Path dari dari daftar isi sebelah kiri
  3. Buka tab Libraries
  4. Tambahkan tombol guci eksternal dan pilih <your sdk path>\extras\android\support\v13\android-support-v13.jar

0

Untuk Android Studio atau IntelliJ, yang perlu Anda lakukan adalah memperbarui dependensi Anda di gradle.build. Saya menggunakan yang berikut ini:

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

0

Saya tidak tahu berapa banyak dari Anda yang memperhatikan hal ini. Pustaka dukungan "appcompat_v7" dan proyek Anda harus berada di direktori yang sama (maksud saya direktori workspace). Jangan bersihkan proyek Anda sampai bebas dari kesalahan, jika tidak Anda akan mengalami kesulitan dengan R.java


0

Anda sebaiknya membuat proyek baru dengan nama apa pun, lalu gunakan appcompat_v7 yang programnya buat baru.

Right Click Project-> properties->Android

Di bagian perpustakaan Adddan pilih perpustakaan appcompat.


0

di eclipse klik kanan pada proyek Anda-> pilih build path dan kemudian pilih configure path path. dari jendela pilih file jar yang Anda inginkan dan menyegarkan proyek Anda


0

Solusi yang diterima dulu pernah bekerja untuk saya, tetapi tidak sekarang. Saya harus membuat ulang hello-world dari jenis yang sama (!) Di ruang kerja baru, membuatnya mengkompilasi, dan kemudian menyalin semua direktori, termasuk .hgdan .hgignore. hg diffmenunjukkan:

-        android:targetSdkVersion="19" />
+        android:targetSdkVersion="21" />

Binary file libs/android-support-v4.jar has changed

Sepertinya Eclipse ingin mengkompilasi untuk API 21 dan gagal melakukan apa pun dengan API 19. Gelap.


0

Jika Anda telah menambahkan pustaka appCompat dan juga telah memberikan rujukan yang tepat dari appCompat dari lokasi SDK, cobalah "invalidate caches / Restart" .
Anda dapat menemukannya dari menu "File" di Android Studio.


0

Dalam kasus saya masalah terjadi karena saya ingin menggunakan SDK yang tidak menyertakan pustaka yang diperlukan. Ketika saya meningkatkan min. Tingkat SDK masalah menghilang. Tentu saja termasuk perpustakaan itu sendiri, harus menghapus kesalahan juga.


0

Lupakan semuanya. Cukup gunakan pustaka appcompat yang diunduh menggunakan Android Studio. Itu memiliki semua definisi yang hilang. Tidak masalah apakah Anda menggunakan di Eclipse atau tidak.


0

Saya memiliki masalah yang sama dan bahkan setelah mengimpor / menambahkan toples / perpustakaan seperti yang disebutkan dalam jawaban itu tidak akan menyelesaikan kesalahan. Karena frustrasi, saya baru saja membuat ruang kerja baru dan membuat proyek android baru dan secara otomatis mengimpor appcompat_v7 dan tidak ada kesalahan pada pembersihan dan pembangunan. Tidak harus mengimpor satu toples / perpustakaan secara manual. Hanya FYI saya menggunakan eclipse Mars.1 Release (4.5.1) dan menghadapi masalah yang sama persis setiap kali saya membuat proyek android baru.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.