Saya meningkatkan android studio to 3.4 canary
versi saya dan sekarang saya tidak dapat berhasil membangun lagi karena kesalahan berikut:
The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.
Keterangan lebih lanjut:
Caused by: java.lang.RuntimeException: Failed to transform '.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/9.0.0-SNAPSHOT/732f93940c74cf32a7c5ddcc5ef66e53be052352/butterknife-compiler-9.0.0-SNAPSHOT.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)
Jelas, itu ada hubungannya dengan Butterknife, androidx and Jetifier
Apakah ada yang tahu cara memperbaikinya?
Jawaban:
Jawaban baru yang benar:
Butterknife 10.0.0 menambahkan dukungan untuk AndroidX.
dependencies { implementation 'com.jakewharton:butterknife:10.0.0' annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' }
Jawaban lama untuk Butterknife <10.0.0:
Coba daftar hitam pisau mentega dari jetifier:
gradle.properties file: android.jetifier.blacklist = butterknife.*\\.jar
Anda harus menggunakan versi 3.3.0-rc1 dari AGP dan versi 1.3.0 dari plugin Kotlin Gradle:
buildscript { repositories { ... } dependencies { classpath 'com.android.tools.build:gradle:3.3.0-rc01' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.0" classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2' } }
sumber
Tambahkan versi terakhir dari dependensi butterknive, Anda dapat memeriksanya di sini jika berubah ( https://github.com/JakeWharton/butterknife ). Ini mendukung androidX. Lalu pergi ke graddle build aplikasi Anda dan ganti versi lama dengan yang berikut:
dependencies { implementation 'com.jakewharton:butterknife:10.0.0' annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' }
sumber
Untuk androidx, cukup tingkatkan dependensi Anda ke versi '10 .0.0 '
dependencies { implementation 'com.jakewharton:butterknife:10.0.0' annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' }
Cari dokumentasi di sini
sumber
Tingkatkan ButterKnife ke versi terbaru dan pastikan untuk menambahkan ini ke build.gradle (aplikasi) Anda:
android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
sumber
Proyek saya tidak menggunakan butterknife, tetapi saya mengalami kesalahan yang sama "Artefak yang diberikan berisi string literal dengan referensi paket 'android.support.v4.widget' yang tidak dapat ditulis ulang dengan aman. Pustaka yang menggunakan refleksi seperti pemroses anotasi perlu diperbarui secara manual untuk menambahkan dukungan untuk androidx "Ini yang saya lakukan untuk mengatasinya: Perbarui versi paket Anda
file build gradle
Menggantikan:
annotationProcessor 'org.parceler:parceler:1.1.6' implementation 'org.parceler:parceler-api:1.1.6'
Dengan:
annotationProcessor 'org.parceler:parceler:1.1.13' implementation 'org.parceler:parceler-api:1.1.13'
sumber
Versi berapa jika Butterknife yang Anda gunakan? Versi terbaru 9.0.0-rc2 mendukung androidx.
UPD: Ada masalah tertutup pada repo github butterknife . Solusi sementara
Tambahkan android.jetifier.blacklist = butterknife-compiler ke file gradle.properties Anda.
sumber
Menggunakan versi terbaru Butterknife menyelesaikan masalah. Gunakan> = 9.0.0-rc2 (Butterknife Version) untuk mendukung androidX. Untuk rilis terbaru, periksa tautannya - https://github.com/JakeWharton/butterknife/releases
sumber
Perubahan
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
untuk
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
atau Tema Material lainnya. Dapatkan kesalahan ini setelah memulai Proyek Baru dengan "Tidak Ada Aktivitas" di Android Studio 4.0.1
sumber
perbarui butterknife + batalkan cache dan restart + sinkronkan gradle jika buterknife tidak digunakan, cukup hapus cache dan mulai ulang
sumber