0

初めてプロガードを使用しています。プロジェクトのルート パッケージ内にすべてのアクティビティ、フラグメント、リスト フラグメントなどがあります (それらを移動しようとしましたが、違いはありませんでした)。私は標準proguard-android.txtに加えて、必要なものproguard-project.txtを何でも配置できる場所を使用しています。これらのクラスは無視されるだけなので、これらのクラスに違いはありません。

usage.txtそれらは、seeds.txtmapping.txtまたはにリストされてdump.txtおらず、dex にもありません (ただし、ライブラリ クラスは正しく処理されているようです)。

-keep public class <my.project.rootpackage>.MyActivity無視されたクラスごとに1つ試してみましたが、他の多くのことを試しましたが、最後のものは次のとおりです。

-dontshrink
-dontoptimize
-dontobfuscate

-keep public class * extends android.app.Application
-keep public class * extends android.support.v4.app.FragmentActivity
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v4.app.ListFragment
-keep public class * extends android.preference.PreferenceActivity

学習中にもっと単純なプロジェクトを使用することもできますが、ProGuard がライブラリを適切に処理しているように見えるので、なぜそれが機能しないのかわかりません。もちろん、デバッグ モードでビルドすると、プロジェクトは正常に動作します。

ProGuard を v4.8 に更新、Eclipse 3.7.2、ADT および SDK を更新、プロジェクト ターゲット API 15、ProGuard からのメッセージなし。

私は何が欠けていますか?ビルドプロセスをクリアしたことがないことを認めます。Ant を学ぶ必要がありますか?

編集: 機能しない場合 (つまり、ProGuard がエラーで終了する場合)、次のようなエラーがよく発生します。

警告: my.project.package.ClassA: 参照されているクラス my.project.package.ClassB が見つかりません

2 つのクラスを同じパッケージに含めることもできます。

4

1 に答える 1

0

したがって、無視されたクラスは、「自動ビルド」機能がProGuardがその仕事をするのを妨げたという事実によるものと思われます。これをオフにすると、「署名されたアプリケーションパッケージのエクスポート」手順はうまくいきますが、ProGuardは難読化/縮小していません。しかし、これは別の問題になります。

参考資料:以前は必要なかったのに、なぜ-libraryjarsを使い始めるのですか?

...編集bin:実際には、縮小されていないのはプロジェクトのapkだけです。エクスポートされたAPKは問題ありません。なんてオデッセイ。

于 2012-09-06T14:03:48.660 に答える