这是我的故事:我已将应用程序迁移到AndroidX,因为我需要从网上找到的库中获得一些新功能。
问题:我目前遇到了一些问题,因为我现在需要为Cordova开发一个实现该应用程序一部分的插件。
我用我的库生成了一个.arr文件,并试图制作一个Cordova插件,作为使用该库的接口。但是,当我尝试将cordova-plugin-camera
与使用AndroidX的插件一起使用时,会出现错误:重复导入,因为cordova-plugin-camera
使用了支持库。
解决方案:我已经删除了对AndroidX的依赖关系,并用旧的支持库替换了它们。
问题:现在切换到AndroidX是个好主意吗?还是最好保留支持库?我执行错了吗?您为项目选择了什么?
答案 0 :(得分:1)
我创建了几个实用程序插件来协助Cordova Android项目中的AndroidX迁移:
我在引用Android支持库的现有插件中创建了这些作为AndroidX支持的通用解决方案,例如cordova-diagnostic-plugin与之AndroidX support issues has been raised。
这意味着,通过在已经包含引用旧版支持库名称和/或AndroidX名称的插件的Cordova项目中安装这两个插件,构建将成功。
例如,请尝试以下测试案例:
cordova create test && cd test
cordova platform add android@8
cordova build android
=> build succeeds
cordova plugin add cordova.plugins.diagnostic
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
答案 1 :(得分:0)
请阅读: https://cordova.apache.org/announcements/2020/06/29/cordova-android-9.0.0.html
可以肯定:
然后:
在您的 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 规则而不是仅仅更改 bool 值来弄乱 gradle.properties 文件