こんばんは、私はこの主題がStackOverFlowで非常に一般的であることを知っていますが、私の質問は少し異なり、ウェブ全体で解決策を見つけることができませんでした! ;)
これは私の質問です:
「アプリを Apktool で逆コンパイルできるようにするための (Eclypse での) 構築要件は何ですか?」
いくつかのテストを行ったところ、ルールが見つかりませんでした...たとえば、空のアプリを作成しました (作成して、プロジェクトを apk ファイルにエクスポートしました)。作成オプションは次のとおりです。
最小: API 14、Android 4.0
ターゲティング: API 14、Android 4.0
コンパイル: API 14、Android 4.0
そして、私はapkを逆コンパイルできませんでした... とにかく、私は自分のアプリを逆コンパイルできません! 建物のオプションで何を変更する必要がありますか? Apktool 1.4.3 および 2.0.0 でテストを行いました。また、proguard がアクティブ化されていません。このリンクは、21.1.1 より上のバージョンをビルドすると問題が発生する可能性があることを示していますが、ApkTool 2.0.0 で修正されました... https://code.google.com/p/android-apktool/issues/detail?id =680
エラーログ:
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)
私を助けようとするすべての人に感謝します:)私はあなたたちを愛しています!