Sejauh ini saya mendapat kesalahan ini hanya untuk satu pengguna, yang menggunakan ponsel yang di-rooting (SM-G900R7 Android 4.4.2). Kesalahannya seperti ini:
Fatal Exception: java.lang.NoClassDefFoundError: android/graphics/drawable/Icon
at java.lang.Class.getDeclaredMethods(Class.java)
at java.lang.Class.getDeclaredMethods(Class.java:656)
at android.view.ViewDebug.getExportedPropertyMethods(ViewDebug.java:960)
at android.view.ViewDebug.exportMethods(ViewDebug.java:1047)
at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:997)
at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:983)
at android.view.ViewDebug.dumpView(ViewDebug.java:900)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:870)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
at android.view.ViewDebug.dump(ViewDebug.java:793)
at android.view.ViewDebug.dispatchCommand(ViewDebug.java:416)
at android.view.ViewRootImpl$W.executeCommand(ViewRootImpl.java:6258)
at android.view.IWindow$Stub.onTransact(IWindow.java:65)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(NativeStart.java)
Saya tidak pernah menggunakan android.graphics.drawable.Icon dalam kode saya, semua penggunaan berasal android.support.v4.graphics.drawable.IconCompat
dan saya juga tidak pernah menggunakan kelas itu dalam kode saya ...
Btw pustaka dukungan saya version 26.0.0, my minSdkVersion is 15 targetSdkVersion is 26.
Terima kasih
Jawaban:
Memperbarui
Masalah telah diperbaiki di support library 27.0.0. Jika Anda memperbarui jangan lupa untuk mengubahnya
compileSdkVersion 27
juga.Apa yang terjadi?
Perangkat Samsung dengan Android 4.4 mengalami error seperti ini saat class extending
View
define method yang mengembalikan atau mengambil parameter tipe yang tidak ada di classpath.Dimulai dengan support library versi 25.4.0
AppCompatImageView
dan metodeAppCompatImageButton
penggantian yang salahsetImageIcon(Icon)
. SejakIcon
kelas diperkenalkan di API 23, aplikasi mogok di perangkat Samsung dengan API 19.Hal serupa terjadi saat Anda mencoba mengganti
View.onApplyWindowInsets(WindowInsets)
.Solusi untuk pustaka dukungan 26.1.0
Sampai ini diperbaiki secara resmi,Jika Anda terjebak dengan versi pustaka dukungan yang lebih lama, saya membuat versi modifikasi diappcompat-v7
mana semua jejaksetImageIcon
metode dihapus. Ini berarti itu tidak akan macet pada Samsung dengan Android 4.4.Letakkan ini di bagian bawah build.gradle aplikasi Anda:
Kode ini akan menggantikan
appcompat-v7
ketergantungan dengan artefak yang dimodifikasi yang dijelaskan.Saat ini satu-satunya versi perbaikan yang didukung adalah 26.1.0.
Peringatan: Pahami kode sebelum melakukan copy-paste, dan selalu berhati-hati saat mendapatkan kode dari sumber yang tidak dikenal!
sumber
Masalah ini telah diatasi di pustaka dukungan 27.0.0:
Plugin Android Gradle 3.x:
Plugin Android Gradle 2.x:
Perhatikan bahwa Anda juga perlu melakukan kompilasi terhadap SDK level 27.
sumber
Error ini terkait dengan support library versi 25.4.0.
Gunakan 25.3.1 versi .
Menggantikan
Dengan:
sumber
compileSdkVersion 25
, tidak ada Android O API dan tidak ada fitur pustaka dukungan yang diperkenalkan sejak 25.4.0 (misalnya, mewarnai tampilan gambar yang dapat digambar dan jalur vektor morphing backport). Berikut adalah pengembangAda 2 pilihan:
sumber