apktool高版本产生compileSdkVersion等错误

By | 2021-06-29

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 等都换成高版本即可解决了。

发表回复

您的电子邮箱地址不会被公开。