android studio运行应用报找不到资源问题

比如:

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编译也没问题。

猜你喜欢

转载自blog.csdn.net/android_cai_niao/article/details/107847187