いくつかの追加の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