Saya tahu, androidx dan dukungan ketergantungan menyebabkan kesalahan multidex. Kami tidak dapat menggunakan dukungan androidx dan android secara bersamaan. Jadi saya benar-benar bermigrasi ke androidx. tetapi salah satu lib ketergantungan saya menggunakan dukungan android "lottie".
Apa yang bisa kita lakukan dalam situasi di atas? Haruskah saya menghapus 'lottie' dari proyek saya.
di bawah ini adalah gradle saya
defaultConfig {
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}
ext{
lottieVersion = "2.5.4"
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
def androidx = "1.0.0-rc01"
api "androidx.constraintlayout:constraintlayout:1.1.2"
api "androidx.appcompat:appcompat:$androidx"
api "androidx.recyclerview:recyclerview:$androidx"
api "androidx.cardview:cardview:$androidx"
api "androidx.core:core-ktx:$androidx"
api "com.google.android.material:material:1.0.0-rc01"
implementation "com.google.code.gson:gson:2.8.5"
implementation "androidx.multidex:multidex:2.0.0"
implementation "com.airbnb.android:lottie:$lottieVersion"
}
sumber
Menambahkan
android.useAndroidX=true
danandroid.enableJetifier=true
memberi saya waktu yang sulit secara manual . Karena ada kesalahan atauSuggestion: add 'tools:replace="android:appComponentFactory"' to <application>
Untuk Mengaktifkan Jet-fire dalam proyek ada opsi di Android Studio
Pilih Proyek Anda ---> Klik Kanan
app ----> Refactor ----> Migrasi ke AndroidX
Ditunjukkan pada gambar di bawah ini: -
Setelah klik Migrate to AndroidX .
Ini akan meminta konfirmasi dan cadangan untuk proyek Anda.
Dan langkah terakhir akan meminta Anda untuk melakukan refactor.
Setelah melakukan Refactor, periksa gradle.properties Anda memiliki
android.useAndroidX=true
danandroid.enableJetifier=true
. Jika tidak, tambahkan dua baris ini ke file gradle.properties Anda:android.useAndroidX=true android.enableJetifier=true
sumber
Anda tidak perlu khawatir
Cukup aktifkan Jetifier di projet Anda.
Buka
gradle.properties
dan tambahkan di bawah dua baris.android.enableJetifier=true android.useAndroidX=true
Ini akan mengonversi semua pustaka dukungan dependensi Anda ke AndroidX pada waktu proses (Anda mungkin memiliki kesalahan waktu kompilasi, tetapi aplikasi akan berjalan).
sumber
android.enableJetifier=true
, jika ini terjadi, saya pikir secara manual menggunakanjetifier-standalone
aar pihak ke-3, mungkin berfungsi.Tambahkan baris di file gradle.properties
android.useAndroidX=true android.enableJetifier=true
Lihat juga https://developer.android.com/jetpack/androidx
sumber
API 29. + menggunakan pustaka AndroidX. Jika Anda menggunakan API 29. +, maka Anda tidak dapat menghapus ini. Jika Anda ingin menghapus AndroidX, maka Anda perlu menghapus seluruh 29. + API dari SDK Anda:
Ini akan bekerja dengan baik.
sumber
Saya menggunakan dua baris kode ini dalam tag aplikasi di manifest.xml dan berhasil.
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"
Sumber: https://github.com/android/android-ktx/issues/576#issuecomment-437145192
sumber
Saya menambahkan di bawah dua baris dalam file gradle.properties
android.useAndroidX=true android.enableJetifier=true
kemudian saya mendapat kesalahan berikut
error: package android.support.v7.app does not exist import android.support.v7.app.AlertDialog; ^
Saya telah menghapus impor dan menambahkan baris di bawah ini
import static android.app.AlertDialog.*;
Dan kelas yang diperpanjang dari AppCompactActivity, ditambahkan baris di bawah ini. (Untuk kesalahan ini Anda hanya perlu menekan alt + enter di studio android yang akan mengimpor pustaka yang benar untuk Anda. Seperti ini Anda dapat menyelesaikan semua kesalahan)
import androidx.appcompat.app.AppCompatActivity;
Di file xml Anda jika Anda pernah menggunakan
<android.support.v7.widget.Toolbar
ganti dengan
androidx.appcompat.widget.Toolbar
lalu di kode java Anda
import androidx.appcompat.widget.Toolbar;
sumber
Jika proyek Anda bukan AndroidX (berarti Appcompat) dan mendapatkan kesalahan ini, coba turunkan versi dependensi yang memicu kesalahan ini, dalam kasus saya play-services-location ("implementasi 'com.google.android.gms: play-services-location : 17.0.0 '"), saya memecahkan masalah dengan menurunkan versi ke com.google.android.gms: play-services-location: 16.0.0'
sumber
Saya pernah mengalami masalah seperti ini sebelumnya, itu adalah file gradle.properties tidak ada, hanya gradle.properties.txt, jadi saya pergi ke folder proyek saya dan saya menyalin & menempel file gradle.properties.txt tetapi tanpa. ekstensi txt kemudian akhirnya berhasil.
sumber
Komentari Baris Ini di
gradle.properties
sumber