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