Могу ли я использовать библиотеку, которая использовала поддержку Android в проектах Androidx. - PullRequest
0 голосов
/ 27 августа 2018

Я знаю, androidx и поддержка зависимостей, вызывающая ошибку мультидекса Мы не можем использовать поддержку androidx и android одновременно.Так что я полностью мигрирую на androidx.но одна из моих зависимостей lib использовала поддержку android "lottie".

Что мы можем сделать в описанной выше ситуации?Должен ли я удалить «Лотти» из моего проекта.

ниже мой gradle

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"
    }

Ответы [ 4 ]

0 голосов
/ 09 июля 2019

Я использовал эти две строки кода в теге приложения в manifest.xml, и это сработало.

tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"

Источник: https://github.com/android/android-ktx/issues/576#issuecomment-437145192

0 голосов
/ 26 сентября 2018

Вам не о чем беспокоиться

Просто включите Jetifier в своем проекте.

  • Обновите Android Studio до 3.2.0 или новее.
  • Откройте gradle.properties и добавьте две строки ниже.

    android.enableJetifier=true
    android.useAndroidX=true
    

Он преобразует все библиотеки поддержки вашегозависимость от AndroidX во время выполнения (у вас могут быть ошибки во время компиляции, но приложение будет работать).

0 голосов
/ 21 февраля 2019

Вручную добавив android.useAndroidX=true и android.enableJetifier=true, получаю трудное время.Потому что это выдает какую-то ошибку или Suggestion: add 'tools:replace="android:appComponentFactory"' to <application>

Чтобы включить Jet-fire в проекте, в Android Studio есть опция

Выберите ваш проект ---> Правый клик

приложение----> Refactor ----> Миграция на AndroidX

Показано на изображении ниже: -

enter image description here

После нажатия на Миграция на AndroidX .

Будет запрошено подтверждение и резервная копия для вашего проекта.

enter image description here

ИНа последнем шаге вам будет предложено выполнить рефакторинг.

enter image description here

После выполнения Refactor проверьте ваши gradle.properties с android.useAndroidX=true и android.enableJetifier=true.Если это не так, добавьте эти две строки в файл gradle.properties:

android.useAndroidX=true
android.enableJetifier=true
0 голосов
/ 27 августа 2018

Вы можете включить Jetifier в своем проекте, который в основном будет обменивать Android Support Library зависимости в ваших проектах с AndroidX -one.(например, ваши зависимости Lottie будут изменены с поддержки на AnroidX)

Из документации Android Studio (https://developer.android.com/studio/preview/features/):

Плагин Android Gradle предоставляет следующие глобальные флаги, которые:Вы можете установить в своем файле gradle.properties:

  • android.useAndroidX: если установлено значение true, этот флаг указывает, что вы хотите начать использовать AndroidX с этого момента. Если флаг отсутствует, Android Studioведет себя так, как если бы флаг был установлен в ложь.
  • android.enableJetifier: при значении true этот флаг указывает, что вы хотите иметь поддержку инструментов (из плагина Android Gradle) для автоматического преобразования существующих сторонних библиотеккак если бы они были написаны для AndroidX. Если флаг отсутствует, Android Studio ведет себя так, как будто для флага установлено значение false.

Предварительное условие для Jetifier:

  • Вы должны использовать как минимум Android Studio 3.2

Чтобы включить jetifier, добавьте эти две строки в файл gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

Наконецпожалуйста, проверьте примечания к выпуску AndroidX, потому что jetifier все еще имеет некоторые проблемы с некоторыми библиотеками (например, Dagger Android): https://developer.android.com/topic/libraries/support-library/androidx-rn

...