Я знаю, что зависимость от androidx и поддержки вызывает ошибку multidex. Мы не можем использовать поддержку androidx и android одновременно. Поэтому я полностью перехожу на androidx. но одна из моих зависимых библиотек использовала поддержку Android "lottie".
Что мы можем сделать в вышеуказанной ситуации? Стоит ли убрать лотти из своего проекта.
ниже мой градиент
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"
}
источник
Добавление вручную
android.useAndroidX=true
иandroid.enableJetifier=true
затруднение. Потому что это вызывает ошибку илиSuggestion: add 'tools:replace="android:appComponentFactory"' to <application>
Чтобы включить Jet-fire в проекте, в Android Studio есть опция
Выберите свой проект ---> Щелкните правой кнопкой мыши
приложение ----> Рефакторинг ----> Переход на AndroidX
Показано на изображении ниже: -
После нажмите Migrate to AndroidX .
Он запросит подтверждение и резервную копию вашего проекта.
И на последнем этапе вас попросят провести рефакторинг.
После выполнения рефакторинга проверьте, что у вашего gradle.properties есть
android.useAndroidX=true
иandroid.enableJetifier=true
. Если это не так, добавьте эти две строки в свой файл gradle.properties:android.useAndroidX=true android.enableJetifier=true
источник
Тебе не о чем беспокоиться
Просто включите Jetifier в своем проекте.
Откройте
gradle.properties
и добавьте ниже две строки.android.enableJetifier=true android.useAndroidX=true
Он преобразует все библиотеки поддержки вашей зависимости в AndroidX во время выполнения (у вас могут быть ошибки времени компиляции, но приложение будет работать).
источник
android.enableJetifier=true
если это произойдет, я думаю, что ручное использование стороннего aar может сработатьjetifier-standalone
.Добавьте строки в файл gradle.properties
android.useAndroidX=true android.enableJetifier=true
См. Также https://developer.android.com/jetpack/androidx
источник
API 29. + использование библиотек AndroidX. Если вы используете API 29. +, вы не можете их удалить. Если вы хотите удалить AndroidX, вам необходимо удалить весь 29. + API из вашего SDK:
Это будет работать нормально.
источник
Я использовал эти две строки кода в теге приложения в manifest.xml, и это сработало.
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"
Источник: https://github.com/android/android-ktx/issues/576#issuecomment-437145192
источник
Я добавил две строчки в файл gradle.properties
android.useAndroidX=true android.enableJetifier=true
то я получил следующую ошибку
error: package android.support.v7.app does not exist import android.support.v7.app.AlertDialog; ^
Я удалил импорт и добавил строку ниже
import static android.app.AlertDialog.*;
А классы, расширенные из AppCompactActivity, добавили строку ниже. (Для этих ошибок вам просто нужно нажать alt + enter в студии Android, которая импортирует для вас правильную библиотеку. Таким образом вы можете исправить все ошибки)
import androidx.appcompat.app.AppCompatActivity;
В вашем XML-файле, если вы использовали какой-либо
<android.support.v7.widget.Toolbar
замените это на
androidx.appcompat.widget.Toolbar
затем в вашем java-коде
import androidx.appcompat.widget.Toolbar;
источник
Если ваш проект не AndroidX (имеется в виду Appcompat) и получил эту ошибку, попробуйте понизить версию зависимостей, которая вызывает эту ошибку, в моем случае play-services-location ("implementation 'com.google.android.gms: play-services-location : 17.0.0 '"), я решил проблему, вернувшись на com.google.android.gms: play-services-location: 16.0.0'
источник
У меня была такая проблема раньше, это был файл gradle.properties, которого не существует, только gradle.properties.txt, поэтому я зашел в папку своего проекта, скопировал и вставил файл gradle.properties.txt, но без него. txt, то он наконец сработал.
источник
Прокомментируйте эту строку в
gradle.properties
источник