AAPT: error: resource android:attr/lStar not found in ionic cordova

如果您正在使用该插件cordova.plugins.diagnostic请先卸载它:

ionic cordova plugin rm cordova.plugins.diagnostic

然后使用以下参数重新安装它

cordova plugin add cordova.plugins.diagnostic --variable ANDROIDX_VERSION=1.0.0

重新编译 android 平台:

ionic cordova prepare android

此时,你的项目不再使用"androidx.core:core:1.7.0-beta02"了。


完整说明

线程中已经提到的解决方案(强制特定版本包的 gradle 规则)将无法使用,因为 Cordova 自己处理整个 gradle 过程(收集插件依赖项、config.xml 设置和处理所有内容)并且很难覆盖特定的东西。例如,我没有设法解决我们的 resolutionStrategy 问题。

迁移到 Android API 31 并不总是一个简单的解决方案(插件和依赖项需要特别支持它)

相反,我试图找出我安装的哪些插件具有链接到 androidx.core:core 包的依赖项,这破坏了其 1.7.0-beta02 版本中的所有内容。

我的列表中没有人直接使用它,但我发现(在 builded 的帮助下build.gradle)使用了以下包androidx.appcompat:appcompat,并且由于它也与AndroidX相关,我挖掘了一下,很快发现该版本是1.+最新的 1.xx)。

检查 mavenrepo,androidx.appcompat:appcompat将我们有缺陷的包androidx.core:core作为依赖项(1.7.0-beta02最新的)。

在用我的 IDE 快速搜索后,我找到了依赖项的定义:

<framework src="androidx.appcompat:appcompat:$ANDROIDX_VERSION" />

它被一个名为 cordova-diagnostic-plugin(在Cordova项目中很常见,它主要处理 Android 设置、权限和硬件内容)

我注意到一个环境变量用于定义包版本(默认设置为1.+)。继续插件的 GitHub 文档:https : //github.com/dpa99c/cordova-diagnostic-plugin#androidx-library会告诉您,您确实可以在使用 Cordova 命令安装插件时设置自定义版本。

我先删除了插件,然后执行:

cordova plugin add cordova.plugins.diagnostic --variable ANDROIDX_VERSION=1.0.0

重新构建android平台后,我开始了新的构建,终于成功了!

androidx.appcompat:appcompat:1.0.0 使用 androidx.core:core 1.0.0版本中的包。没有更多的 error: resource android attr/lStar not found 问题!

总结

检查您的插件依赖项,如果可能,设置静态版本而不是“最新”。通过这种方式,您可以(在大多数情况下)避免使用alpha/beta 版本,这可能不稳定或不支持您当前的环境。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值