Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用android支持Androidx项目的库吗。_Android_Android Jetpack - Fatal编程技术网

我可以使用android支持Androidx项目的库吗。

我可以使用android支持Androidx项目的库吗。,android,android-jetpack,Android,Android Jetpack,我知道,, 我们不能同时使用androidx和android支持。所以我完全迁移到androidx。但我的一个依赖库使用了android支持“lottie” 在上述情况下,我们能做些什么?我应该从我的项目中删除“lottie”吗 下面是我的毕业证书 defaultConfig { minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0"

我知道,, 我们不能同时使用androidx和android支持。所以我完全迁移到androidx。但我的一个依赖库使用了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"
    }

您可以在您的项目上启用
Jetifier
,它基本上将项目依赖项中的
Android支持库
依赖项与
AndroidX
-依赖项交换。(例如,您的乐透依赖项将从支持更改为AnroidX)

从Android Studio文档():

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

android.useAndroidX=true
android.enableJetifier=true
  • android.useAndroidX:当设置为true时,此标志表示您希望从现在开始使用AndroidX。如果没有国旗, Android Studio的行为就像该标志被设置为false一样
  • enableJetifier:当设置为true时,此标志表示您希望(从android Gradle插件)获得工具支持以 自动转换现有的第三方库,就像它们是 为AndroidX写的。如果该标志不存在,Android Studio将作为 如果该标志设置为false
喷射器的先决条件:

  • 您必须至少使用安卓Studio 3.2
要启用jetifier,请将这两行添加到
gradle.properties
文件中:

android.useAndroidX=true
android.enableJetifier=true

最后,请查看AndroidX的发行说明,因为一些库(例如Dagger Android)仍然存在一些问题:

您不必担心

只需在projet中启用

  • 到3.2.0或更新版本
  • 打开
    gradle.properties
    并添加以下两行

    android.enableJetifier=true
    android.useAndroidX=true
    

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

手动添加
android.useAndroidX=true
android.enableJetifier=true
,这给了我很大的时间。因为它会抛出一些错误或
建议:将'tools:replace=“android:appComponentFactory”'添加到

单击后,迁移到AndroidX

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

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

执行重构后,检查gradle.properties是否具有android.useAndroidX=true
和android.enableJetifier=true。如果没有,则将以下两行添加到gradle.properties文件:

android.useAndroidX=true
android.enableJetifier=true
注意:-使用Android Studio升级,如果您有 android studio 3.2及更高版本。检查


我在manifest.xml中的application标记中使用了这两行代码,它起了作用

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

来源:

API29.+使用AndroidX库。如果您使用的是API 29.+,则无法删除这些。如果要删除AndroidX,则需要从SDK中删除整个29.+API:


这很好。

gradle.properties

android.useAndroidX=true


gradle.properties文件中添加行

android.useAndroidX=true
android.enableJetifier=true
也指

如果您的项目不是AndroidX(平均Appcompat)并且出现此错误,请尝试降级触发此错误的依赖项版本,在我的例子中是play services location(“实现”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文件下面添加了两行

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扩展而来的类,添加在下面的行中。(对于这些错误,只需在android studio中按alt+enter键,即可为您导入正确的库。这样您就可以解决所有错误)

在xml文件中,如果您使用了

<android.support.v7.widget.Toolbar 

在我自己创建的文件中找不到gradle.properties事实上,一个可传递的依赖项+gradle缓存可能不起作用,即使是
android.enableJetifier=true
,如果发生这种情况,我认为手动使用
jetifier standalone
到第三方aar可能会起作用。我有android studio 4.1。我确实启用了Jetifier。“我的应用程序没有运行。@Khemraj甚至将Jetifier添加到gradle.properties中,它开始在项目中到处显示编译时错误,其中使用了V4支持库。所以剩下的唯一选择就是手动修复并迁移所有代码到AndroidX中。这对我来说不是一个选项。我在这里提出了一个同样的问题:我的项目使用多个库,其中一些使用支持库,而另一些使用androidx。如何在我的项目中使用这两个库?@hiren Dabii如果解决方案不适合您,您能否为您的设置创建一个新问题?如果不了解更多关于您的设置的详细信息,就很难找到答案。OP询问是否可以在Android支持下使用AndroidX。您建议禁用AndroidXgo to gradle.properties和Comments这是一个很好的建议,但对于使用Android Studio升级的用户来说,这只是一个附带说明,如果您使用的是Android Studio 3.2及更高版本,则此选项有效。检查这个,但是你有一个巨大的项目,一个不能仅仅为一个androidX更改而更改所有的片段和活动。
import androidx.appcompat.widget.Toolbar;