要反编译的Android应用程序的要求?

要反编译的Android应用程序的要求?,android,eclipse,smali,apktool,Android,Eclipse,Smali,Apktool,晚上好,, 我知道这个问题在StackOverFlow上很常见,但我的问题有点不同,我在整个WEB上找不到任何解决方案!;) 这是我的问题: “允许应用程序被Apktool反编译的构建要求(在Eclypse上)是什么?” 我做了一些测试,找不到任何规则。。。例如,我构建了一个空应用程序(我刚刚创建了它并将其导出到项目中的apk文件),构建选项为: 最低要求:API 14,安卓4.0 目标:API 14、Android 4.0 使用API 14、Android 4.0进行编译 我无法反编译apk。

晚上好,, 我知道这个问题在StackOverFlow上很常见,但我的问题有点不同,我在整个WEB上找不到任何解决方案!;)

这是我的问题:

“允许应用程序被Apktool反编译的构建要求(在Eclypse上)是什么?”

我做了一些测试,找不到任何规则。。。例如,我构建了一个空应用程序(我刚刚创建了它并将其导出到项目中的apk文件),构建选项为:

最低要求:API 14,安卓4.0

目标:API 14、Android 4.0

使用API 14、Android 4.0进行编译

我无法反编译apk。。。无论如何,我不能反编译我的任何应用程序!我必须在建筑选项中更改什么? 我在Apktool 1.4.3和2.0.0上进行了测试 此外,proguard未激活。 这个链接说它在构建高于21.1.1的版本时可能有问题,但是它在Apktool2.0.0中被修复了

错误日志:

对于ApkTool 1.4.3:

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
I: Baksmaling...
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: **Could not decode arsc file**
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
    at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
    at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
    at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
    at brut.androlib.Androlib.getResTable(Androlib.java:50)
    at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
    at brut.apktool.Main.cmdDecode(Main.java:146)
    at brut.apktool.Main.main(Main.java:77)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
    at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
    at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
    at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
    at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
    at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
    ... 8 more
对于ApkTool 2.0.0:

Microsoft Windows [version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Tous droits r‚serv‚s.
C:\Users\user\Desktop\adt-bundle-windows-x86_64-201407020\AndroidMultitool_3.5.3\AndroidMultitool>cd C:\Users\user\Desktop\adt-bundle-windows-x86_64-201407020\AndroidMultitool_3.5.3\AndroidMultitool\Program_Files
C:\Users\user\Desktop\adt-bundle-windows-x86_64-201407020\AndroidMultitool_3.5.3\AndroidMultitool\Program_Files>apktool d C:\Users\user\Desktop\adt-bundle-windows-x86_64-201407020\AndroidMultitool_3.5.3\AndroidMultitool\Files\tes1.apk -o C:\Users\user\Desktop\adt-bundle-windows-x86_64-201407020\AndroidMultitool_3.5.3\AndroidMultitool\Decompiled_apk\tes1
I: Using Apktool 2.0.0-RC2 on tes1.apk
I: Loading resource table...
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\user\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
C:\Users\user\Desktop\adt-bundle-windows-x86_64-201407020\AndroidMultitool_3.5.3\AndroidMultitool\Program_Files>W: **Could not decode attr value**, using undecoded value instead: ns=android, name=showAsAction, value=0x00000000
Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x01030119
    at brut.androlib.res.data.ResPackage.getResSpec(ResPackage.java:59)
    at brut.androlib.res.data.ResTable.getResSpec(ResTable.java:58)
    at brut.androlib.res.data.ResTable.getResSpec(ResTable.java:54)
    at brut.androlib.res.data.value.ResReferenceValue.getReferent(ResReferenceValue.java:60)
    at brut.androlib.res.data.value.ResReferenceValue.encodeAsResXml(ResReferenceValue.java:47)
    at brut.androlib.res.data.value.ResScalarValue.encodeAsResXmlAttr(ResScalarValue.java:45)
    at brut.androlib.res.data.value.ResStyleValue.serializeToResValuesXml(ResStyleValue.java:49)
    at brut.androlib.res.data.value.ResBagValue.serializeToResValuesXml(ResBagValue.java:41)
    at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResources.java:564)
    at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:327)
    at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:123)
    at brut.androlib.ApkDecoder.decode(ApkDecoder.java:102)
    at brut.apktool.Main.cmdDecode(Main.java:170)
    at brut.apktool.Main.main(Main.java:86)

谢谢所有帮助我的人:)我爱你们

您必须下载apktoo_2.0.0rc文件。然后,您可以反编译您的apk文件,将不会得到arcs文件错误

您可以从下载最新的文件版本

现在将“apktool_2.0.0rc4.jar”重命名为“apktool.jar”

现在从apktool文件夹中删除旧的“apktool.jar”文件

现在将这个新的“apktool.jar”文件放在您的apktool文件夹中,旧的“apktool.jar”就放在这里

现在同样运行cmd命令,如
apktool if framework-res.apk

接下来呢

apktool d“您的appname.apk不带引号”


并保持微笑。

这应该作为针对apktool的错误报告提交。此外,这是一个反汇编问题,而不是反编译问题。您使用什么标志来调用apktool?谢谢,我找到了解决方案,但我不记得在这里发布它!