之前做的一个项目,由于阿里的旺信服务停了,最近想找个替代方案,于是找到了野火IM,看了下demo效果还不错,主要是ui部分可以复用。于是下载源代码看了一眼,比较奇怪的一点是昨天在windows已经把代码跑起来了,结果今天在mac上死活运行不聊了,提示下面的错误:
Execution failed for task ':chat:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
C:\Users\obaby\.gradle\caches\transforms-2\files-2.1\87575f1e55fb95ae83d67cbd526a722c\core-1.7.0-alpha02\res\values\values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found.
问题尴尬在看了下代码貌似也没什么问题,并且tm我都神马都还没改呢。这就神奇了,晚上回来之后在windows下运行,tm也挂了,wtf??
鉴于今天百度了一天没什么效果,于是尝试google之:
第一条就是这个错误,结果浪费时间tm瞎百度百度了一天。艹。
按照stackoverflow的方法只需要添加下面的代码即可:
#Go to android/build.gradle and add androidXCore = "1.6.0" to ext:
ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
googlePlayServicesAuthVersion = "16.0.1"
androidXCore = "1.6.0"
}
我搜索了一下没有这个配置,不过想起来貌似是这个core报的错误,并且隐约还提示了implementation中使用+号导致的警告,凭记忆搜索了一下,还真有这么个东西:
代码如下:
dependencies {
api project(':mars-core-release')
def lifecycle_version = '2.0.0-beta01'
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.core:core-ktx:+"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0-beta01"
// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
如果要修复上面的错误,只需要将androidx.core:core-ktx:+ 修改为androidx.core:core-ktx:1.6.0 sync之后,重新编译即可:
dependencies {
api project(':mars-core-release')
def lifecycle_version = '2.0.0-beta01'
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.core:core-ktx:1.6.0"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0-beta01"
// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
现在tm就一切ok了,如果一个安卓项目,之前运行好好地,哪天突然坏掉了。那么检查一下引用的各种+ 加号吧,坑爹。
参考连接:
https://stackoverflow.com/questions/69021225/android-resource-linking-fails-on-lstar
☆文章版权声明☆
* 网站名称:obaby@mars * 网址:https://h4ck.org.cn/ * 本文标题: 《一个加号(+)引发的血案》 * 本文链接:https://h4ck.org.cn/2021/09/%e4%b8%80%e4%b8%aa%e5%8a%a0%e5%8f%b7%e5%bc%95%e5%8f%91%e7%9a%84%e8%a1%80%e6%a1%88/ * 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。
分享文章: