11

いくつかの追加のAndroidライブラリプロジェクトを使用して、AndroidプロジェクトをProguardでコンパイルしたいと思います。実際、ほとんどのコードとリソースはこれらのライブラリにあります。

メインプロジェクトのproject.propertiesに「proguard.config=proguard.cfg」という行を追加し、cfg-file(-libraryjars .. \ libs)を構成しました。次に、-右クリックして、[Androidツール]->[署名済みアプリケーションパッケージのエクスポート]を選択します。ADTはリリース用にプロジェクトをコンパイルしましたが、最初の起動時にアプリがクラッシュしました。ログから読み取ったところ、リソースポインターが間違っていたことが原因でした。

プロジェクトを逆コンパイルしたところ、非常に奇妙なことがわかりました。ライブラリでリソースを宣言すると、そのリソースポインタが0になります。

すべてのAndroidライブラリプロジェクトのproject.propertiesに「proguard.config=proguard.cfg」という行を追加しても、問題は解消されませんでした。

解決策はありますか?

編集:proguard.cfgのフラグメントを見てください:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !

-printusage unused.txt
-optimizationpasses 2
-printmapping mapping.txt
# -overloadaggressively
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt

-libraryjars ..\libs
4

2 に答える 2

1

最新のツールを使用していますか?Eclipse Indigo、ADT v16.0.1、proguard 4.7のように?また、最新のツールに更新する前に問題が発生しました。

于 2012-02-16T11:02:55.457 に答える
1

Androidライブラリプロジェクトをどのように含め/参照しますか?私が正しく読んだら、あなたはそれらを瓶として追加しますか?もしそうなら、あなたは本当に図書館プロジェクトによって提供されるリソースでいくつかの問題を抱えているかもしれません。

私が正しい場合は、それを試してください:

プロジェクト設定を使用して、そこにライブラリプロジェクトを追加します。そのためにエクスポートされたjarファイルを使用しないでください。Androidライブラリプロジェクトの動作は、通常のJavaライブラリの動作とは異なります。

于 2012-02-21T12:47:21.373 に答える