【问题标题】:AndroidX transition and Cordova, what are the risks/benefits?AndroidX 过渡和 Cordova,有什么风险/好处?
【发布时间】:2019-04-02 13:15:49
【问题描述】:

这是我的故事:我已将我的应用迁移到 AndroidX,因为我需要从网上找到的库中获取一些新功能。

问题:我目前遇到了一些问题,因为我现在需要为 Cordova 开发一个插件来实现该应用程序的一部分。

我用我的库生成了一个 .arr 文件,并尝试制作一个 Cordova 插件,作为使用该库的接口。但是当我尝试将cordova-plugin-camera 与使用AndroidX 的插件一起使用时,出现错误:重复导入,因为cordova-plugin-camera 使用了支持库。

解决方案:我已经删除了对 AndroidX 的依赖,并用旧的支持库替换了它们。

问题:现在切换到 AndroidX 是个好主意还是保留支持库更好?我做错了什么吗?你为你的项目选择了什么?

【问题讨论】:

    标签: cordova plugins migration androidx


    【解决方案1】:

    我创建了几个实用插件来帮助在 Cordova Android 项目中迁移 AndroidX:

    我在现有插件中创建了这些作为 AndroidX 支持的通用解决方案,这些插件引用了 Android 支持库,例如cordova-diagnostic-plugin 反对 AndroidX support issues has been raised

    这意味着通过在 Cordova 项目中安装这两个插件,该项目已经包含引用旧版支持库名称和/或 AndroidX 名称的插件,构建现在将成功。

    例如,试试这个测试用例:

    cordova create test && cd test
    cordova platform add android@8
    cordova build android
        => build succeeds
    cordova plugin add cordova.plugins.diagnostic@5
    cordova build android
        => build succeeds
    cordova plugin add cordova-plugin-androidx
    cordova build android
        => build fails
    cordova plugin add cordova-plugin-androidx-adapter
    cordova build android
        => build succeeds
    

    【讨论】:

    • 还没有尝试过,但它似乎是一个不错的选择。感谢您的信息
    • 您好,通过 Android Studio 应用时,这似乎不起作用。我曾尝试使用 Android Studio 来执行此操作,现在所有库都在 AS 中的 Build Output 中说:错误:包 androidx.core.content 不存在
    • 真的很有帮助,就一个问题,为什么cordova官方不解决这个问题?
    【解决方案2】:

    请阅读: https://cordova.apache.org/announcements/2020/06/29/cordova-android-9.0.0.html

    确定:

    • 清除您的 gradle 缓存目录(在 home/.gradle/caches 中)
    • 删除和添加android平台
    • 按照上述文章检查您的要求

    然后:

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

    <preference name="AndroidXEnabled" value="true" />
    <preference name="GradlePluginKotlinEnabled" value="true" />
    <preference name="GradlePluginKotlinCodeStyle" value="official" />
    <preference name="GradlePluginKotlinVersion" value="1.3.50" />
    

    (AndroidXEnabled偏好在gradle.properties中添加jetifyer和androidX)

    您的构建现在应该可以工作了


    顺便说一句,@DaveAlden https://github.com/dpa99c/cordova-plugin-androidx 通过添加倍数的 enable-jetifier 和 enableAndroidX 规则来搞乱 gradle.properties 文件,而不是仅仅更改布尔值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      相关资源
      最近更新 更多