android studio运行应用报找不到资源问题
16lz
2021-01-23
比如:
Android resource linking failed...\merged.dir\values-v26\values-v26.xml:7: error: resource android:attr/colorError not found....\merged.dir\values-v26\values-v26.xml:11: error: resource android:attr/colorError not found....\merged.dir\values-v26\values-v26.xml:15: error: style attribute 'android:attr/keyboardNavigationCluster' not found....\merged.dir\values\values.xml:2079: error: resource android:attr/fontStyle not found....\merged.dir\values\values.xml:2079: error: resource android:attr/font not found....\merged.dir\values\values.xml:2079: error: resource android:attr/fontWeight not found.error: failed linking references.
由于文件路径太长,已经省略了前面的很多路径,我们主要看后面的就行了,不运行应用时没有报错,运行时编译就报错了,不知道为什么要在编译运行时才报错。
这个错误说的比较明白了,但是如果没经验的话还是一头雾水的,我在项目中引入了Kotlin的Anko,如下:
implementation "org.jetbrains.anko:anko:$anko_version"
然后运行就报错了,这是因为这个库又依赖到了其他一些库,而这些库里面有包含这些报错的xml资源文件,这些资源文件里面引用了一些xml属性,我们看到这些属性是android:attr,以android命令空间打头的肯定是系统属性,说找不到这个属性那就是这个版本的系统就没有这个属性,所以找不到,像我上面那个错误就很好解决,因为我们看到有values-v26,说明使用这个资源的库他的编译版本最少是26吧,所以我把我项目的编译版本也设置成26,编译就能过了,因为在Api26版本中有这些对应的属性,26以下的版本就没有这些属性。如果报出来的错误中没有版本信息,则你需要找你依赖的库里面使用到的一些支持库,看他的版本是多少,找最高的版本,我们编译版本就设置和它一样就行了,示例如下:
可以看到anko它是需要 sdk27来编译的,但是我发现我用26编译也没问题。
更多相关文章
- 关于android原生Webview的一些属性整理(持续补充~)
- Android中通过资源文件获取drawable的几种方法
- Android Root刷机资源 & Google Nexus资源
- Android版本28使用http请求报错not permitted by network securi
- Android android 6.0权限校验及版本兼容问题