No resource identifier产生compileSdkVersion等错误
自动反编译工具引发了一个错误:
No resource identifier found for attribute ‘compileSdkVersion’ in package ‘android’ No resource identifier found for attribute ‘compileSdkVersionCodename’ in package ‘android’
其实这是 apk高版本去编译后的问题。
我们来使用apktool多个版本去编译后查看 AndroidManifest.xml 文件发现没问题,但是再反编译出来的会多出 android:compileSdkVersion=“23” 和 android:compileSdkVersionCodename=“6.0-2438415” 属性,如果是反编译的用户使用还会报错,刚好今天是新的笔记本,新的环境反而会觉得更有问题了,然后检查了build、buildtools、androidsdk、jdk等等的版本,都是正常的,匹配都是OK的,
最后看了下build后的 AndroidManifest.xml 文件,都是乱码,这是肯定的。
用自己编写的DuXML解下乱码,可以看到格式是如下的:
无法向下兼容,这样会很蛋疼,换成同个版本也会有问题,这样的话只能去看下引用的流程,这样的话,只能去看下安卓的源码了,compileSdkVersion和 buildtools都是高版本的,最低是23。
所以最后解决的办法就比较简单,对应的dx、apt 等都换成高版本即可解决了。