4

新しいadt&sdk 20にアップデートしましたが、EclipseでのProguardの新しい使用方法に問題があります。私はProguardのプロではありませんが、常に使用していて、非常に簡単に機能しました。「project.properties」ファイルを編集して「proguard.config=proguard.cfg」を追加しただけで、機能しました。

残念ながら、いくつかの変更が加えられ、それらの操作方法に関する情報が見つかりません。Proguardについて説明している公式Webサイト(Android Webサイト内)では、まだ古い方法について説明しています。

彼らは次の行のコメントを外すために「project.properties」に書いた:

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

これは機能しませんでした。エクスポートしようとすると、次のエラーが発生します。

Proguard returned with error code 1. See console
java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
at proguard.shrink.Shrinker.execute(Shrinker.java:159)
at proguard.ProGuard.shrink(ProGuard.java:275)
at proguard.ProGuard.execute(ProGuard.java:101)
at proguard.ProGuard.main(ProGuard.java:492)

誰かがこれを手伝ってくれますか?これまでproguard.cfgファイルを変更する必要はなく、すべてが完全に自動化されていました。私がそのようなことをしなければならないことは非常にまれでした。

彼らはまた、おそらくproguard.cfgを置き換え、sdkフォルダーのファイルから「extends」するファイル「proguard-project.txt」を追加したので、代わりにプロジェクト内のファイルを何らかの形で参照しても大丈夫でしょうか(そして「親」ファイルの内容をファイルに入れますか?もしそうなら、どうすればいいですか?

4

5 に答える 5

3

以前は正常に機能していて、Proguardを学習したことがない場合は、次の行を変更してください。

 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

この行に:

 proguard.config=proguard.cfg

そうすれば、古いProguardのセットアップを元に戻すことができますが、更新することをお勧めします。サードパーティのjarを使用しない限り、正常に機能するはずです。これらは欠落していると言っていることであり、Proguardが難読化したときにそれらを削除しないようにするには、-keepフラグを使用する必要があります。

于 2012-06-08T20:24:51.687 に答える
2

わかりました。解決策は、何らかの理由で、Eclipseのsdk.dir変数に間違った場所を設定したことです。

だから私がしたことは:

  1. 日食の好みに行く
  2. 変数を検索しました
  3. そして、java->ビルドパス->クラスパス変数に移動しました
  4. そして、androidsdkのディレクトリの値で「sdk.dir」変数を追加しました。
于 2012-06-10T07:32:48.183 に答える
1

プロジェクトのルートフォルダーにファイルproguard.cfgを作成し、adtを21に更新し、proguard v4.8または4.9を使用し、APKをエクスポートする前にAndroidLintを実行することを忘れないでください

于 2013-04-29T12:32:37.870 に答える
0

デフォルトの設定ファイルのパスがに変更されました

$ {sdk.dir} /tools/proguard/proguard-android-optimize.txt

于 2014-07-02T06:39:34.747 に答える
0

SDK 22を使用した私の解決策は、proguard-project.txtを$ {sdk.dir} / tools /proguard/からプロジェクトワークスペースにコピーすることでした。

project.propertiesを見ると、それがを参照していることがわかります${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

$ {sdk.dir}は問題なく見つかりましたが、プロジェクトディレクトリでproguard-project.txtを探していました。

于 2015-07-16T14:21:24.720 に答える