Setelah bermigrasi ke Android Studio 3.2, API 28, saya mendapatkan kesalahan berikut pada tata letak aplikasi saya:
Tata letak dalam tata letak tidak memiliki deklarasi di folder tata letak dasar; hal ini dapat menyebabkan error saat resource dikueri dalam konfigurasi yang tidak cocok dengan qualifier ini
Salah satu tata letak yang saya dapatkan kesalahan ini adalah:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@null" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:adjustViewBounds="true"
android:contentDescription="@string/hello_world"
android:src="@drawable/loading_top" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:adjustViewBounds="true"
android:contentDescription="@string/hello_world"
android:src="@drawable/loading_bottom" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/hello_world"
android:background="@color/white"
android:layout_marginBottom="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@drawable/loading_logo" />
<ImageView
android:id="@+id/loading"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="center|center_vertical"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:contentDescription="@string/hello_world"
android:scaleType="fitXY"
android:src="@null" />
</FrameLayout>
</LinearLayout>
Saya mendapatkan kesalahan pada baris pertama dari LinearLayout pertama.
Adakah yang tahu bagaimana mengatasi kesalahan ini?
Terima kasih
UPDATE: Menjawab pertanyaan saya dengan apa yang telah menyelesaikan masalah saya
android
xml
android-studio
L Kemp
sumber
sumber
Jawaban:
Dalam kasus saya, menutup dan membuka kembali studio Android memecahkan masalah. Membangun kembali proyek atau membersihkan cache tidak membantu.
sumber
Anda juga dapat mencoba ini:
File => Invalidasi Cache / Restart => Invalidate dan Restart.
sumber
Dalam kasus saya itu adalah penggunaan huruf kapital di nama file. Saya meninggalkan semuanya dalam huruf kecil dan sudah diperbaiki.
sumber
Jika Anda merancang tata letak Anda: layout-sw320dp layout-sw480dp layout-sw600dp layout-sw720dp
Anda harus menambahkan tata letak secara default seperti inie:
sumber
Saya menerima kesalahan ini saat memindahkan file tata letak di antara modul Gradle . Saya tidak perlu melangkah lebih jauh untuk membatalkan cache karena itu teratasi sendiri ketika saya memulai ulang
Android Studio
dan membersihkan proyek . Sepertinya ini adalah bug IDE .sumber
Dalam kasus saya, saya menyelesaikannya dengan ini :
Android mengatakan kepada saya id-error ini: MissingDefaultResource sebagai dokumentasi mengatakan:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingDefaultResource" <!--this--> android:layout_width="match_parent" android:layout_height="match_parent">
Tapi ini solusi yang mudah, karena Anda kehilangan sumber di Android.
Saya menyelesaikan ini dengan opsi sistem file . Jika Android memberi tahu Anda tentang sumber daya yang hilang, berarti ada sesuatu yang hilang dan Anda harus mengisinya kembali.
Anda harus pergi ke \ app \ src \ main \ res
mungkin: klik kanan di folder file yang hilang, tampilkan di Exporer, dan kembali ke \ app \ src \ main \ res
Anda harus ditemukan
Anda harus menemukan di mana file-file tersebut hilang. Dalam kasus saya, itu tidak ada di / layout
sumber
saya baru saja melakukannya
Build > Clean Project
sumber
Dalam kasus saya, masalah ini disebabkan oleh huruf besar. Karakter yang salah seperti "-" juga dapat menyebabkan masalah. Saya mengubah nama dari
Activity_disease.xml
menjadiactivity_disease.xml
dan masalah diperbaiki.sumber
Tidak ada yang berhasil bagi saya seperti membangun kembali proyek atau Memvalidasi cache. Dalam kasus saya, menutup dan membuka kembali studio Android memecahkan masalah .
sumber
Dalam kasus saya, tampaknya Google dulu mengharapkan (atau setidaknya menerima) nama yang berbeda di antara tata letak yang berbeda; Saya punya
time_dialog.xml
dan atime_dialog_landscape.xml
. Mengganti nama yang terakhir untuktime_dialog.xml
memperbaiki masalah.sumber
Saya memecahkan masalah ini hanya dengan menyinkronkan proyek dengan gradle
sumber
Bagi saya, langkah-langkah berikut membuatnya berhasil:
sumber
strings.xml
juga, saya setuju dengan yang iniMasalah ini tampaknya terjadi karena studio atau compiler tidak dapat menemukan file resource di dalam folder base layout. Untuk mengatasi masalah, Anda mungkin perlu membuat file ke dalam folder tata letak yang berbeda. Jika Anda menggunakan folder tata letak v21, folder v25 dll. Untuk merancang tata letak untuk perangkat target yang berbeda, Anda mungkin juga perlu menempatkan file sumber daya di sana.
sumber
Dalam kasus saya, peringatan ini muncul karena karakter "salah" (titik) yang digunakan dalam nama nilai:
<dimen name="dp.divider.xlarge">24dp</dimen>
Menghapus titik-titik (klik kanan pada sebuah nama, lalu Refactor-Rename di Android Studio) menyelesaikan masalah.
sumber
Terlambat ke pesta tetapi kasus saya berbeda dari di atas.
Saya baru saja mengganti nama sumber daya dan itu mulai bekerja.
Sebenarnya nama sumber daya saya adalah ic_menu_black_24dp.xml sehingga bertentangan dengan sumber daya menu android.
sumber
Apa yang berhasil bagi saya adalah menghapus atribut id
dari sumber tata letak.
sumber
Apa yang memecahkannya untuk saya:
Di Android Studio, klik kanan pada nama file di direktori layout, dan pilih Reformat code , tanpa kotak centang khusus yang dipilih di layar berikutnya.
Tidak yakin apa yang sebenarnya terjadi di bawah tenda di sini, tapi itu berhasil.
sumber
Saya mengalami masalah setelah menyalin / menempel kode ke dalam file tata letak XML, tetapi saya memperbaikinya hanya dengan membuat file secara manual. Sangat aneh, karena kodenya persis sama, tetapi entah bagaimana memperbaiki masalah ini. Saya memang mencoba memulai ulang dan melakukan perbaikan "File => Invalidate Caches / Restart => Invalidate and Restart", tetapi masalah hanya diperbaiki dengan membuat ulang file secara manual.
sumber
Perhatikan bahwa ketika Anda menggunakan versi tata letak yang berbeda seperti ( Besar / Kecil / Nornal ) maka Anda harus menggunakan folder tata letak utama yang sama. seperti ini
sumber
(1) Hapus tata letak asli.
(2) Tambahkan kembali tata letak.
Langkah 1
Langkah 2
sumber
Dalam kasus saya, kesalahan yang sama muncul karena file layout-land dan nama file layout berbeda.
Kasus Saya: layout-land -> my_layout_land layout -> my_layout
Saya menyelesaikannya dengan membuat kedua nama file sama. Karena jika Anda menggunakan layout-land dan Anda memiliki file di layout-land maka Anda juga harus memiliki file di folder layout.
sumber
Saya telah menyalin file xml di folder menggunakan Windows Explorer. Tampaknya telah menyebabkan masalah encoding. Setelah menghapus file dan mengatasinya di dalam Android Studio, masalahnya teratasi.
sumber
membersihkan atau membangun kembali proyek sudah cukup untuk mengindeks tata letak.
Bagaimana membangun kembali dan menjalankan proyek android dari baris perintah
sumber