apk反编译,回编出错了?

错误:No resource identifier found for attribute 'compileSdkVersion' in package 'android'

我把AndroidManifest.xml文件里的
" android:compileSdkVersion="23 和
"android:compileSdkVersionCodename="6.0-2438415"
删除就能回编了。
我想问,删除的这部分会影响正常运行么?

不影响正常运行,只是编译环境,
compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。
需要强调的是修改 compileSdkVersion 不会改变运行时的行为。当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告、编译错误,但新的 compileSdkVersion 不会被包含到 APK 中:它纯粹只是在编译的时候使用。(你真的应该修复这些警告,他们的出现一定是有原因的)
因此我们强烈推荐总是使用最新的 SDK 进行编译。在现有代码上使用新的编译检查可以获得很多好处,避免新弃用的 API ,并且为使用新的 API 做好准备。
注意,如果使用 Support Library ,那么使用最新发布的 Support Library 就需要使用最新的 SDK 编译。例如,要使用 23.1.1 版本的 Support Library ,compileSdkVersion 就必需至少是 23 (大版本号要一致!)。通常,新版的 Support Library 随着新的系统版本而发布,它为系统新增加的 API 和新特性提供兼容性支持。
解决办法有两种(我测试的前提是反编译的母包是没有包含这两个属性的):
(1)使用apktool 2.3.2版本,因为2.3.3之后版本针对appt和appt2做了修改,最后AndroidManifest.xml里面不在包含compileSdkVersion和compileSdkVersionCodename
(2)清除原本的1.apk,重新指定framework-dir:java -jar apktool_2.4.0.jar empty-framework-dir --force,最后发现可以回编译成功,但是AndroidManifest.xml还是会包含compileSdkVersion和compileSdkVersionCodename。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-17
: 牙齿不生,《普济》︰不拘大人、小儿。用雄鸡矢、雌鸡矢各十四颗焙研,入麝香少许,先以针挑破出血,敷之。年高者不过二十日,年少者十日必生。又方︰但用乌鸡雌雄...
相似回答