Apktool 回编译出现No resource identifier产生compileSdkVersionCodename等错误

apktool 回编译的时候出现:

D:\AndroidKiller_v1.3.1\bin\apktool\apktool>java -jar apktool_2.6.1.jar b --use-aapt2 myapplication -o myapplication.apk
I: Using Apktool 2.6.1
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
W: D:\AndroidKiller_v1.3.1\bin\apktool\apktool\myapplication\AndroidManifest.xml:1: error: attribute android:compileSdkVersion not found.
W: D:\AndroidKiller_v1.3.1\bin\apktool\apktool\myapplication\AndroidManifest.xml:1: error: attribute android:compileSdkVersionCodename not found.
W: D:\AndroidKiller_v1.3.1\bin\apktool\apktool\myapplication\AndroidManifest.xml:3: error: attribute android:appComponentFactory not found.
W: error: failed processing manifest.
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\ADMINI~1\AppData\Local\Temp\brut_util_Jar_40296003696410984826013217397653780035.tmp, link, -o, C:\Users\ADMINI~1\AppData\Local\Temp\APKTOOL7545364384768228868.tmp, --package-id, 127, --min-sdk-version, 19, --target-sdk-version, 30, --version-code, 1, --version-name, 1.0, --no-auto-version, --no-version-vectors, --no-version-transitions, --no-resource-deduping, -e, C:\Users\ADMINI~1\AppData\Local\Temp\APKTOOL1606140794445170326.tmp, -0, arsc, -I, C:\Users\Administrator\AppData\Local\apktool\framework\1.apk, --manifest, D:\AndroidKiller_v1.3.1\bin\apktool\apktool\myapplication\AndroidManifest.xml, D:\AndroidKiller_v1.3.1\bin\apktool\apktool\myapplication\build\resources.zip]

反编译出来的会多出 android:compileSdkVersion=“23” 和 android:compileSdkVersionCodename=“6.0-2438415” 等属性
解决办法有两种(我测试的前提是反编译的母包是没有包含这两个属性的):
(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。

我才用方法2,清除原本的1.apk

D:\AndroidKiller_v1.3.1\bin\apktool\apktool>java -jar apktool_2.6.1.jar empty-framework-dir --force
I: Removing 1.apk framework file...

再次回编译成功

D:\AndroidKiller_v1.3.1\bin\apktool\apktool>java -jar apktool_2.6.1.jar b --use-aapt2 myapplication -o myapplication.apk
I: Using Apktool 2.6.1
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs... (/kotlin)
I: Copying libs... (/META-INF/services)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...

D:\AndroidKiller_v1.3.1\bin\apktool\apktool>

猜你喜欢

转载自blog.csdn.net/zhangjianming2018/article/details/124477875