我在启用 android.useAndroidX 时收到 "AndroidX dependencies" 错误

I'm getting the "AndroidX dependencies" error with android.useAndroidX enabled

我在尝试构建我的 android 应用程序时遇到以下错误:

Task :app:mergeDebugResources FAILED

失败:构建失败,出现异常。

This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry. The following AndroidX dependencies are detected: androidx.versionedparcelable:versionedparcelable:1.0.0, androidx.slidingpanelayout:slidingpanelayout:1.0.0, androidx.fragment:fragment:1.0.0, androidx.core:core:1.0.0, androidx.customview:customview:1.0.0, androidx.swiperefreshlayout:swiperefreshlayout:1.0.0, androidx.interpolator:interpolator:1.0.0, androidx.loader:loader:1.0.0, androidx.drawerlayout:drawerlayout:1.0.0, androidx.viewpager:viewpager:1.0.0, androidx.collection:collection:1.0.0, androidx.localbroadcastmanager:localbroadcastmanager:1.0.0, androidx.lifecycle:lifecycle-common:2.0.0, androidx.arch.core:core-common:2.0.0, androidx.annotation:annotation:1.0.0, androidx.lifecycle:lifecycle-livedata:2.0.0, androidx.legacy:legacy-support-core-ui:1.0.0, androidx.lifecycle:lifecycle-viewmodel:2.0.0, androidx.lifecycle:lifecycle-livedata-core:2.0.0, androidx.legacy:legacy-support-v4:1.0.0, androidx.media:media:1.0.0, androidx.arch.core:core-runtime:2.0.0, androidx.legacy:legacy-support-core-utils:1.0.0, androidx.documentfile:documentfile:1.0.0, androidx.cursoradapter:cursoradapter:1.0.0, androidx.lifecycle:lifecycle-runtime:2.0.0, androidx.coordinatorlayout:coordinatorlayout:1.0.0, androidx.asynclayoutinflater:asynclayoutinflater:1.0.0, androidx.print:print:1.0.0

我修改了项目的 gradle.properties 文件并将“android.userAndroidX”设置为 true。但每次我尝试再次构建时,它都会自动返回 false。 gradle.properties 是否有可能在构建期间被任何其他任务覆盖?

谢谢!

添加到gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

在 Android Studio 中点击:文件 -> 使缓存无效/重启 -> 无效并重启

推测您正在使用 cordova-android@8(键入 cordova platform ls 以查找项目中的平台版本)。

所以你有两个选择:

  1. 更新为 cordova-android@9 隐式支持 AndroidX:

    cordova platform rm android && cordova platform add android@9
    

    在您的 config.xml 中添加以下行:

    <preference name="AndroidXEnabled" value="true" />
    

    此处有更多详细信息:cordova documentation

  2. cordova-plugin-androidx 添加到您的 Cordova 项目,它会持续为 cordova-android@8:

    设置本机 AndroidX 标志
    cordova plugin add cordova-plugin-androidx
    

如果在添加其中一个后您的项目仍然无法构建,可能是因为它包含 Cordova 插件,其原生 Android 代码引用遗留 Android 支持库(AndroidX 是继任者)。 要解决此问题,您可以将 cordova-plugin-androidx-adapter 添加到您的项目,这将动态修补这些插件的源代码以将它们迁移到 AndroidX:

cordova plugin add cordova-plugin-androidx-adapter

如果您使用的是最新的 cordova,您可以尝试 cordova prepare android 它会修补您的源文件并更新 gradle.properties

首先打开您的项目gradle脚本>>然后打开gradle.properties最后粘贴这两行代码

android.useAndroidX=true

android.enableJetifier=true

cordova plugin add cordova-plugin-androidx

cordova plugin add cordova-plugin-androidx-adapter

我被困了 2 天才得到这个 你只需要安装这两个插件就可以了

  1. 添加插件以在项目中启用AndroidX

    cordova plugin add cordova-plugin-androidx
    
  2. 添加插件以修补使用 Android 支持库以使用 AndroidX

    的现有插件源
    cordova plugin add cordova-plugin-androidx-adapter
    

在您的 config.xml 中添加以下行:

<preference name="AndroidXEnabled" value="true" />

这里有更多详细信息: cordova documentation

对我有用的是将 Cordova Social Sharing 插件降级到 5.6.8

cordova plugin add  cordova-plugin-x-socialsharing@5.6.8

(在此之前删除此插件的先前版本,然后删除所有平台,然后重新安装所有平台)

我今天已经将 Android 平台以及我使用的插件更新到 9.1.0。然而,我的项目编译开始输出 Task :app:mergeDebugResources FAILED 错误和 This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled.。我一直在寻找几个原因,并尝试了在 SO 上提出的不同解决方案,但最准确的想法是由 @Guy Sela 给出的,他建议插件可以使用新的 AndroidX 依赖项,这就是原因。因此,在您尝试在 Cordova 配置中使用 AndroidXEnabled 属性 或 AndroidX 的插件适配器之前(Cordova 在 9.1.0 [=15 时均不推荐) =] 平台)查找您最近更新的插件。