我可以使用Android支持androidx项目的库吗?

Hit*_*h-1 63 android android-jetpack

我知道,androidx和支持依赖导致multidex错误 我们不能同时使用androidx和android支持.所以我完全迁移到androidx.但我的一个依赖lib使用了android支持"lottie".

在上述情况下我们能做些什么?我应该从我的项目中删除'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"
    }
Run Code Online (Sandbox Code Playgroud)

Chr*_*her 81

您可以Jetifier在项目上启用,这将基本上Android Support LibraryAndroidX-one 交换项目依赖项中的依赖项.(例如,您的Lottie依赖项将从Support更改为AnroidX)

从Android Studio文档(https://developer.android.com/studio/preview/features/):

Android Gradle插件提供了以下可在gradle.properties文件中设置的全局标志:

  • android.useAndroidX:当设置为true时,此标志表示您想从现在开始使用AndroidX.如果该标志不存在,则Android Studio的行为就像标志设置为false一样.
  • android.enableJetifier:当设置为true时,此标志表示您希望获得工具支持(来自Android Gradle插件)以自动转换现有的第三方库,就像它们是为AndroidX编写的一样.如果该标志不存在,则Android Studio的行为就像标志设置为false一样.

Jetifier的先决条件:

  • 你必须至少使用 Android Studio 3.2

要启用jetifier,请将这两行添加到您的gradle.properties文件中:

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

最后,请查看AndroidX的发行说明,因为jetifier某些库仍存在一些问题(例如Dagger Android):https://developer.android.com/topic/libraries/support-library/androidx-rn

  • @hiren dabhi 如果解决方案建议不适合您,您可以为您的设置创建一个新问题吗?如果不了解有关您的设置的更多详细信息,则很难找到答案。 (2认同)

sus*_*dlh 30

手动添加android.useAndroidX=trueandroid.enableJetifier=true给我带来困难。因为它引发了一些错误或 Suggestion: add 'tools:replace="android:appComponentFactory"' to <application>

要在项目中启用Jet-fire,android Studio中有一个选项

选择您的项目--->右键单击

app ---->重构---->迁移到AndroidX

如下图所示:

在此处输入图片说明

单击“ 迁移到AndroidX”后

它将要求您确认并备份您的项目。

在此处输入图片说明

最后一步,它将要求您进行重构。

在此处输入图片说明

完成重构后,检查gradle.properties中的android.useAndroidX=trueandroid.enableJetifier=true。如果不是,则将这两行添加到gradle.properties文件中:

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)


Khe*_*raj 13

你不用担心

只需在您的projet中启用Jetifier

它将在运行时将您依赖项的所有支持库转换为AndroidX(您可能会遇到编译时错误,但应用会运行)。

  • gradle.properties 在我的文件中找不到,是我自己创建的 (3认同)

小智 6

gradle.properties文件中添加行

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 在此处输入图片说明 另请参阅 https://developer.android.com/jetpack/androidx