36

Google は、Android Studio 2.1 を使用する Android 開発者向けの新しいJACK コンパイラのテスト バージョンをリリースしました。

私の質問は、JACK を使用して APK の難読化を有効にするにはどうすればよいですか? 以下の記事では、JACK が難読化をネイティブに実行し、Proguard の必要性を排除すると述べています。

.pro次の記事では、JACK は難読化を実行するために Proguard 構成ファイル (つまり、ファイル) を使用すると述べています。

それはまた言う

このプロセス中に、Jack は要求されたコードの縮小(縮小および/または難読化) も処理します。

これは正確にはどういう意味ですか?オプションを使用して、Proguard オプションを含むファイルをminifyEnabled定義する必要がありますか?.pro

要約すれば:

  • JACK で難読化を有効にするにはどうすればよいのでしょうか? Proguard の使用を回避できますか、それとも、JACK でコンパイルしたとしても、Proguard は難読化プロセスで事実上の役割を果たしますか?

  • JACK は現在、難読化をサポートしていますか?

ノート:

私はすでに次の投稿を参照しました:

さらなる参考文献:

アップデート:

Matt Inskoによる回答は役に立ちますが、より詳細で、より正確で標準的な回答が必要です。

4

2 に答える 2

9

JACK 難読化は、最新リリースの Gradle プラグイン (v2.1.0) ではサポートされていないようです。

最新の v2.1.0 プラグインを使用しているときに JACK を有効にするとJack requires Build Tools 24.0.0 or later、プレビュー ツールを使用する必要があることが通知されます。

Android gradle v2.2.0-alpha1、Build Tools-v24rc4、Platform Tools-v24rc3、および Sdk Tools-v25.1.7rc1 を使用して、難読化を JACK で実行することができました。

内部で有効にすると、ビルドで構成されたため、defaultConfig不平を言いました。Minifying the variant used for tests is not supported when using Jack.minifyEnabled truedebug

そこで、カスタム ビルド タイプを作成し、そこで有効にしました。

buildTypes {
    ...
    custom {
        minifyEnabled true
        proguardFiles 'proguard-android-JACK.txt-2.2.0-alpha1'
        jackOptions {
            enabled true
        }
    }

使用時に問題が発生しましたproguardFiles getDefaultProguardFile('proguard-android.txt')。次のエラーが発生しました: com.android.jack.api.v01.ConfigurationException: Error while parsing ...、。そのため、不平を言った行を削除してから、変更した構成ファイルを手動で指定しました。

于 2016-05-19T14:52:17.400 に答える