Saya menerima banyak kesalahan yang ditampilkan di Subjek. Kesalahan ini tampaknya sesekali dan saya tidak dapat mereproduksi mereka. Dari tumpukan saya dapat belajar bahwa kesalahan tersebut dapat terjadi untuk sumber daya tata letak yang berbeda. Garis XML juga bervariasi.
Adakah yang bisa menjelaskan mengapa kesalahan ini terjadi? Dan apa yang bisa saya lakukan untuk memperbaiki masalah ini?
Tumpukan
=============================================================
com.fsp.android.f generated the following exception:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fsp.android.f/com.life360.android.ui.tour.TourActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>
--------- Stack trace ---------
1. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2649)
2. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
3. android.app.ActivityThread.access$2200(ActivityThread.java:131)
4. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
5. android.os.Handler.dispatchMessage(Handler.java:99)
6. android.os.Looper.loop(Looper.java:123)
7. android.app.ActivityThread.main(ActivityThread.java:4702)
8. java.lang.reflect.Method.invokeNative(Native Method)
9. java.lang.reflect.Method.invoke(Method.java:521)
10. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
11. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12. dalvik.system.NativeStart.main(Native Method)
-------------------------------
----------- Cause -----------
android.view.InflateException: Binary XML file line #12: Error inflating class <unknown>
1. android.view.LayoutInflater.createView(LayoutInflater.java:513)
2. com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
3. android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
4. android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
5. android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
6. android.view.LayoutInflater.inflate(LayoutInflater.java:382)
7. android.view.LayoutInflater.inflate(LayoutInflater.java:320)
8. android.view.LayoutInflater.inflate(LayoutInflater.java:276)
9. com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:208)
10. android.app.Activity.setContentView(Activity.java:1629)
11. com.solvek.sample.ui.BaseActivity.onCreate(BaseActivity.java:23)
12. com.solvek.sample.ui.tour.TourActivity.onCreate(TourActivity.java:161)
13. android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
14. android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2587)
15. android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2674)
16. android.app.ActivityThread.access$2200(ActivityThread.java:131)
17. android.app.ActivityThread$H.handleMessage(ActivityThread.java:1975)
18. android.os.Handler.dispatchMessage(Handler.java:99)
19. android.os.Looper.loop(Looper.java:123)
20. android.app.ActivityThread.main(ActivityThread.java:4702)
21. java.lang.reflect.Method.invokeNative(Native Method)
22. java.lang.reflect.Method.invoke(Method.java:521)
23. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
24. com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
25. dalvik.system.NativeStart.main(Native Method)
-----------------------------
-------- Environment --------
Time =2010-12-20 08:27:35 AM
Device =tmobile/htc_espresso/espresso/espresso:2.1-update1/ERE27/216830:user/release-keys
Make =HTC
Model =T-Mobile myTouch 3G Slide
Product =htc_espresso
App =com.fsp.android.f, version 2.0.9 (build 1232)
Berikut ini adalah hasil dari XML, namun kesalahan seperti itu terjadi di xml lain
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ViewFlipper android:layout_gravity="fill" android:id="@+id/flipper" android:layout_height="fill_parent" android:layout_width="fill_parent">
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_1"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_2"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_3"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_4"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_5"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_6"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_7"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_8"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_9"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_10"/>
<ImageView android:scaleType="fitXY" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/tour_11"/>
</ViewFlipper>
<LinearLayout android:id="@+id/exit_bar" android:layout_gravity="top" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
<Button android:background="@drawable/orange_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textStyle="bold" android:textColor="#000000" android:shadowColor="#ffffff" android:shadowRadius="1.6" android:shadowDx="1.5" android:shadowDy="1.3" android:id="@+id/exit_tour_btn" android:text="Exit" android:layout_marginLeft="20dip"/>
<TextView android:layout_height="wrap_content" android:textColor="#ffffff" android:layout_gravity="center" android:layout_width="110dip" android:layout_marginLeft="20dip" android:textSize="16dip" android:textStyle="bold" android:text="Life360 Tour"/>
</LinearLayout>
<Button style="@style/BlueBtn" android:text="Continue" android:layout_marginTop="40dip" android:id="@+id/continue_btn" android:visibility="gone" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" />
<FrameLayout android:id="@+id/bottom_bar" android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/blue_bar" android:visibility="invisible">
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/left" android:layout_gravity="left|center" android:background="@drawable/tour_left" android:layout_marginLeft="10dip"/>
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/right" android:layout_gravity="right|center" android:background="@drawable/tour_right" android:layout_marginRight="10dip"/>
</FrameLayout>
</merge>
android
xml
resources
android-inflate
Solvek
sumber
sumber
Jawaban:
Pengecualian mengembang sebenarnya bukan masalah, tetapi benar-benar berasal dari masalah lain yang lebih dalam tata letak Anda yang kemudian dibungkus dalam InflateException. Masalah umum adalah pengecualian kehabisan memori ketika mencoba mengembang tampilan gambar memuat sumber daya yang dapat ditarik. Jika salah satu sumber daya ini memiliki resolusi piksel tinggi, itu akan memakan banyak memori, yang menyebabkan perkecualian.
Jadi pada dasarnya verifikasi bahwa resolusi piksel dalam gambar yang dapat digambar Anda hanya minimum yang diperlukan untuk tata letak Anda.
sumber
ViewFlipper
memuat semua gambar ke dalam memori selama tata letak menggembung. Karena gambar saya besar butuh banyak memori, saya digantiViewFlipper
denganImageSwitcher
yang dapat mengubah gambar dengan animasi sepertiViewFlipper
tetapi hanya memuat satu gambar pada saat itu.sumber
Ini juga dapat terjadi jika Anda menggunakan
VectorDrawable
dukungan perpustakaan menggunakan dan lupa untuk menggunakanapp:srcCompat
bukanandroid:src
Kesalahan yang tepat adalah: Baris file XML biner #XX: Galat menggembungkan ImageView kelas
Lihat tautan itu
sumber
Saya memiliki kesalahan yang sama ketika membuat tampilan khusus dengan hanya satu konstruktor, cobalah untuk mendefinisikan semua konstruktor untuk tampilan kustom Anda.
sumber
Saya tahu pertanyaannya sudah dijawab tetapi saya masih memposting dengan pemikiran bahwa mungkin seseorang mengalami masalah seperti ini.
Dalam masalah kasus saya adalah saya memuat aplikasi saya ke ponsel yang merujuk tata letak dari res / layout / folder dan nilai-nilai untuk @dimens dari res / values / dimens di sini itu font_22 yang ia coba akses dan ia tetapkan dalam res / values-xlarge / dimens.
Saya sebenarnya sedang memperbarui UI proyek yang ada.
Saya mengalami masalah ini karena saya menggunakan IDE Eclipse di mana saya ctrl + ruang untuk petunjuk saat menulis xml untuk folder tata letak itu menampilkan semua nilai dari nilai-nilai serta folder nilai-xlarge terlepas dari folder mana yang saya tulis.
Saya juga tahu bahwa nilai di kedua file harus sama dengan yang dipetakan untuk layar yang berbeda.
Semoga ini bisa membantu seseorang mengalami masalah konyol semacam ini.
sumber
Saya menemukan bug yang sama dan menemukan alasan dasarnya adalah:
Gunakan Konteks Aplikasi untuk mengembang tampilan.
Menggembungkan dengan Konteks Aktivitas memperbaiki bug.
sumber
Ukuran gambar saya hanya 14Kb tetapi masalahnya adalah desainer memberi saya 1011px x 1819px (resolusi terlalu tinggi sehingga menyebabkan InflateException)
sumber
Jika seseorang mengalami masalah serupa, saya mengalami masalah seperti itu saat menggembungkan tampilan:
View.inflate(getApplicationContext(), R.layout.my_layout, null)
diperbaiki dengan mengganti
getApplicationContext()
denganthis
sumber
Saya mengalami kesalahan ini karena saya memilih tema sebagai tema Material. Tetapi ketika saya mencoba menjalankan aplikasi pada 4.4.2 itu memberikan kesalahan ini.
Solusi: Pilih Theme_holo sebagai tema
sumber
4.2.2
. Tapi di mana saya bisa berubah dari tema Material ke Theme_holo? Saya tidak melihat Materi kata kunci distyles.xml
atauv21/styles.xml
. Lihat pertanyaan saya: stackoverflow.com/questions/37883677/…Tautan ini dapat membantu Anda. Coba periksa manifes Anda untuk masalah. Jika Anda dapat membuatnya terjadi lagi, poskan seluruh jejak tumpukan Anda sehingga kami dapat melihat apa kesalahan sebenarnya.
EDIT: Saya yakin Anda telah memeriksa ini, tetapi apa yang ada di baris 12 dari file XML yang Anda gunakan untuk tata letak TourActivity?
sumber
Bagi saya, pesan kesalahan sebenarnya tidak cukup di log kucing, jadi inilah yang saya lakukan untuk mencari tahu apa yang menyebabkan masalah:
(Dalam pesan kesalahan log cat, katanya kesalahan terjadi saat menggelembungkan tata letak tertentu di HomeFragment.java saya)
Evaluate expression
di atasnya:Run > Evaluate Expression
ataualt - F8
tools:targetApi="lollipop"
(bug hanya terjadi pada perangkat yang lebih tua).sumber
Saya menemukan kesalahan yang sama, dan butuh dua hari untuk mengidentifikasi kesalahan itu.
Kesalahan itu hanya karena saya mencoba menggunakan:
android:background
Daripada:
app:srcCompat
dalam file SVG.
Dalam kasusmu, aku yakin ini dia
Saya sarankan menggunakannya dengan cara ini
tambahkan ini ke aplikasi build.gradle Anda
dan
Saya harap ini membantu.
sumber
Saya tahu itu adalah pertanyaan yang dijawab, tetapi saya tidak melihat penyebab yang saya hadapi.
Itu adalah Android Studio menempatkan drawables saya di / drawable-V24 Emulator saya adalah API 23. Jadi, akhirnya tidak dapat menemukannya.
Solusinya adalah memindahkan semua drawables ke / drawable folder (no -24).
sumber
Anda harus menyalin file gambar dari folder "drawable-24" ke folder "drawable".
sumber
Saya memiliki kesalahan yang sama dan saya memutuskan untuk memindahkan drawables dari folder drawable-mdpi ke drawable folder. Butuh beberapa waktu untuk saya sadari karena di Eclipse semuanya bekerja dengan sempurna ketika di Android Studio saya mendapatkan kesalahan runtime yang jelek ini.
Sunting catatan: Jika Anda bermigrasi dari gerhana ke Android Studio dan proyek Anda berasal dari gerhana itu mungkin terjadi, jadi berhati-hatilah bahwa di Android Studio hal-hal sedikit berbeda dari gerhana.
sumber
Dalam kasus saya, kesalahan ini terjadi ketika saya menggunakan tombol tindakan Mengambang dan mengatur
android:backgroundTint="#000"
. Maka jangan mengaturbackgroundTint
dan masalah diselesaikan. Semoga bermanfaat bagi Anda.sumber
app:backgroundTint
bukanandroid:backgroundTint
.Bagi saya, masalah saya adalah saya dulu
Untuk latar belakang LinearLayout, setelah saya menghapusnya tes lulus.
sumber
Saya punya masalah ini sekarang dan berhasil mencari tahu apa itu. Merujuk warna pada nilai saya yang menyebabkan masalah. Jadi definisikan secara manual daripada menggunakan satu dari saran dropdown. Lalu itu berhasil!
sumber
Saya memiliki kesalahan yang sama ketika saya menjalankan aplikasi saya di API lvl 16 (26 baik-baik saja). Itu karena saya digunakan
?attrr/colorAccent
dalam bentuk saya yang dapat digambar:Mengganti itu dengan warna biasa memperbaiki masalah saya.
sumber
saya memiliki masalah yang sama dan diselesaikan dengan menghapus drawable-v24 dengan (24) di depan gambar di folder drawable dan menggantinya dengan drawables biasa.
sumber
Saya tahu utas ini sudah tua, tetapi masih menjawabnya agar tidak ada orang lain yang menghabiskan malam tanpa tidur.
Saya sedang refactoring proyek lama, yang semua file tata letak berisi atribut hardcoded seperti
android:maxLength = 500
. Jadi saya memutuskan untuk mendaftarkannya dires/dimen
file saya sebagai<dimen name="max_length">500</dimen>
.Selesai refactoring hampir 30 file tata letak dengan nilai res saya. Tebak apa? lain kali saya menjalankan proyek saya itu mulai melempar sama
InflateException
.Sebagai solusi, diperlukan untuk mengulang semua perubahan saya dan menjaga semua nilai tersebut sama seperti sebelumnya.
TLDR;
langkah 1: Semua berjalan baik.
langkah 2: Untuk meningkatkan pemeliharaan saya saya ganti
android:maxLength = 500
dengan<dimen name="max_length">500</dimen>
danandroid:maxLength = @dimen/max_length
, di situlah semuanya salah (menabrakInflateException
).langkah 3: Semua berjalan buruk
Langkah 4: Re-melakukan semua pekerjaan saya dengan kembali mengganti
android:maxLength = @dimen/max_length
denganandroid:maxLength = 500
.everything bisa tetap.langkah 5: Semua berjalan baik.
sumber
Mengatasinya dengan memindahkan semua item yang dapat saya gambar dari drawable-v24 ke drawable
sumber
Saya juga menghadapi masalah serupa. Sementara bagi siapa pun, ini mungkin masalah berbagai penggunaan buruk dalam Kode seperti
Salah satu faktor yang paling diabaikan adalah penggunaan Konteks yang benar saat menggembungkan tampilan. Harap periksa bahwa Anda tidak menggunakan ApplicationContext di mana konteks aktivitas diperlukan. Meskipun, ApplicationContext mungkin tidak selalu berakhir dengan kesalahan, tetapi tergantung pada hierarki tampilan Anda, itu mungkin sangat penting.
Saya menyelesaikan masalah saya dengan konteks BAD (menggunakan ApplicationContext alih-alih Activity dalam rentang 4 hari! Jadi, cobalah jika itu menyelesaikannya. Selamat Pengodean !!
sumber
Saya telah menghadapi masalah yang sama, saya telah menggunakan tag tampilan di xml bukannya View. Mengganti ke kelas Lihat memperbaiki masalah.
Semoga ini bisa membantu Anda juga ..
sumber
Kami perlu memeriksa Versi API. Saya biasa memberi warna latar belakang untuk
LinearLayout
suka sayapasti saya memiliki kesalahan yang sama,
as_royalblue.xml
di dalamdrawable
folderdan bagaimana saya memperbaikinya , sebenarnya sepertinya masalah Api jadi kita perlu memeriksa tingkat api jika di atas API 24 sehingga kita dapat menggunakan cara yang kita suka. Tetapi jika di bawah 24 kita harus menghindari penggunaan, juts memberikan warna normal atau satu warna tidak satu warna gradasi campuran.
berikan id ke linearlayout Anda dan atur latar belakang jika tidak masalah
sumber
Dalam kasus saya, saya harus menentukan nama paket lengkap komponen UI perpustakaan yang saya gunakan dalam file tata letak saya.
sumber
Bagi saya itu terjadi karena saya mencoba untuk mencampur gambar grafik vektor xml dengan png biasa dalam file tata letak yang sama,
hanya setelah saya mengganti grafik vektor xml dengan pngs mulai berfungsi
sumber
Saya baru saja menyelesaikan masalah ini, cukup hapus gambar Anda dari drawable (v24) dan cukup tempel di folder drawable ini berfungsi untuk saya.
sumber
Saya memiliki kesalahan yang sama dalam
Crashlytics
dari perangkat aneh: RAM Motorola One Vision Android 5.1 dan 20 GB (gratis), rooted Perangkat ini awalnya berasal dari Android 9.0, RAM 4 GBMungkin seseorang sedang mencoba meretas aplikasi yang saat ini saya kembangkan dan memiliki masalah dalam menangani multi-APK. Jadi gambar tidak dapat ditemukan dan aplikasi memberikan crash
sumber