Android Killer反编译失败:No resource identifier found for attribute 问题解决方法

1 问题

最近博主在用Android Killer反编译自己写的一个App的时候,反编译正常,回编译的时候失败,这个App就是简单的Hello World,所以,可以断定是Android Killer的问题,报错如下:

当前 Apktool 使用版本:Android Killer Default APKTOOL
正在编译 APK,请稍等...
>I: Using Apktool 2.3.1
>I: Smaling smali folder into classes.dex...
>I: Building resources...
>W: E:\software\AndroidKiller_v1.3.12018整合版By吾爱论坛昨夜星辰2012\projects\hello_so\Project\AndroidManifest.xml:1: error: No resource identifier found for attribute 'compileSdkVersion' in package 'android'
>W: 
>W: E:\software\AndroidKiller_v1.3.12018整合版By吾爱论坛昨夜星辰2012\projects\hello_so\Project\AndroidManifest.xml:1: error: No resource identifier found for attribute 'compileSdkVersionCodename' in package 'android'
>W: 
>W: E:\software\AndroidKiller_v1.3.12018整合版By吾爱论坛昨夜星辰2012\projects\hello_so\Project\AndroidManifest.xml:2: error: No resource identifier found for attribute 'appComponentFactory' in package 'android'
>W: 

报错很多,但是我们只需要看error 后面的内容:

1 error: No resource identifier found for attribute 'compileSdkVersion' in package 'android'
2 error: No resource identifier found for attribute 'compileSdkVersionCodename' in package 'android'
3 error: No resource identifier found for attribute 'appComponentFactory' in package 'android'

报错的大致意思就是说,AndroidManifest.xml 中的属性 compileSdkVersion、compileSdkVersionCodename、appComponentFactory 在 android 包中找不到,但实际上根本不是这个原因

2 原因

经过一番搜索,发现是因为C:\Users\{你的用户名}\AppData\Local\apktool\framework\1.apk 这个文件导致的

3 解决方法

简单的删除 1.apk 并不能解决问题,因为每次回编译的时候又会自动生成这个文件,正确的解决方法是先进入Android Killer 所用的 Apktool 的目录

Android Killer反编译失败:No resource identifier found for attribute 问题解决方法_第1张图片
Android Killer反编译失败:No resource identifier found for attribute 问题解决方法_第2张图片

这里博主用的是 Apktool_2.4,可以看到对应的文件是 apktool_2.4.0.jar 这个文件,不过在 Android Killer 中我们无法直接查到这个 apktool_2.4.0.jar 所在的目录,如果你忘记了 apkltool 的文件路径没关系,我们可以到下面的apktool官网地址下载最新版的apktool:

https://ibotpeaches.github.io/Apktool/

如果打不开没关系,随便在网上下载一个就可以了,目前最新版的是v2.4.1,接着我们把下载好的 apktoo_2.4.1.jar 导入 Android Killer:
Android Killer反编译失败:No resource identifier found for attribute 问题解决方法_第3张图片
打开命令行cmd进入刚才 apktool_2.4.1.jar 所在的目录,这里博主的目录是 E:\software:

cd /d E:\software

接着执行以下命令:

java -jar apktool_2.4.1.jar empty-framework-dir

Android Killer反编译失败:No resource identifier found for attribute 问题解决方法_第4张图片
执行完上面的命令后,再次回编译就ok了

4 总结

就是进入 apktool 所在的目录执行下面的命令:

java -jar apktool_2.4.1.jar empty-framework-dir

如果还是无法解决的话,就尝试更换最新版本的 apktool:

ApkTool官网:https://ibotpeaches.github.io/Apktool/

或者使用下面的 ShakaApktool_3.0.0-20170503-release.jar:

ShakaApktool_3.0.0-20170503-release.jar

还是不行的话,请换用下面的 Android Killer:

AndroidKiller_v1.3.1.zip

5 转载请注明来自‘梧桐那时雨’的博客:https://blog.csdn.net/fuchaosz/article/details/104800802

Tips:
如果觉得这篇博客对你有帮助或者喜欢博主的写作风格,就关注一下博主或者给博主留个言呗,鼓励博主创作出更多优质博客,Thank you.

你可能感兴趣的:(Android逆向笔记,反编译,Android,Killer)