2012-04-09 10 views
4

パッケージエクスプローラのExport> Export> Android ApplicationのビルドインProguardサポートでProguardを使用しようとしています。メインプロジェクトでは、アンドロイド互換ライブラリを使用するライブラリプロジェクトを使用していますが、この互換性ライブラリ自体も使用しています。基本的にはそのように:Proguard with android project with(compatible)libraries

BaseLibraryProject BaseActitivity LIBS:アンドロイド・サポート・v4.jar MainProject が LIBSライブラリBaseLibraryProjectを使用しています:アンドロイド・サポート・v4.jar

このアプリは、デバイスとsimluatorsの両方OKを実行します。 しかしProGuardのは警告の多くを放出し、コード1

で存在する。これは、ProGuardの関連商品一覧の最後のビット:

ご覧のとおり
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView 
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView 
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView$OnQueryTextListener 
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView 
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView$OnQueryTextListener 
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView 
[2012-04-09 14:19:49 - MainProject] Warning: there were 131 unresolved references to classes or interfaces. 
[2012-04-09 14:19:49 - MainProject]   You may need to specify additional library jars (using '-libraryjars'). 
[2012-04-09 14:19:49 - MainProject] Warning: there were 29 unresolved references to program class members. 
[2012-04-09 14:19:49 - MainProject]   Your input classes appear to be inconsistent. 
[2012-04-09 14:19:49 - MainProject]   You may need to recompile them and try again. 
[2012-04-09 14:19:49 - MainProject]   Alternatively, you may have to specify the option 
[2012-04-09 14:19:49 - MainProject]   '-dontskipnonpubliclibraryclassmembers'. 
[2012-04-09 14:19:49 - MainProject] java.io.IOException: Please correct the above warnings first. 

:それは互換ライブラリを見つけることができません。含ま

これは-libraryjarsと-dontskipnonpubliclibraryclassmembersの両方でproguard.cfgファイルの先頭である:

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontskipnonpubliclibraryclassmembers 
-dontpreverify 
-verbose 
-libraryjars libs/android-support-v4.jar 

は違いはありません。私は、ライブラリをBaseLibraryプロジェクト/ MainProject、完全修飾パス名に追加するというあらゆる種類の組み合わせを試しました。何も助けてくれないようです。

proguardに関するほとんどのスタックオーバーフローの問題は、Antの設定に関係しているようです。 この問題の原因となる可能性があること、および複数のライブラリを使用するこのプロジェクトでProguardを使用するにはどうすればよいですか?事前に

おかげで、

答えて

16

ADT 17のリリースは、私はあなたのサポートライブラリの問題を解決すべきだと思うより良いデフォルト値を含めProGuardの動作方法に多くの改善をもたらしました。

う - http://tools.android.com/recent/proguardimprovements

エクリプス(project.properties)

デフォルトのproject.propertiesは現在、標準ProGuardの設定ファイル(ProGuardの-アンドロイドを参照する次の行を含むファイルADT 17の通り。 TXT)とプロジェクト固有のProGuardの設定ファイル(ProGuardの-project.txt)...

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 
私は新しいAndroidプロジェクトを作成する推奨

どのようにそれを参照するにはこれらの新しいファイルを使用してレイアウトします。 Proguardの改善とデフォルトの設定があるので、あなたのアプリは長期的に効果があります。

更新

のGradle(build.gradle)

以下は、両方のデフォルトの標準ProGuardのコンフィグ&ローカルプロジェクトProGuardの規則を使用します。

android { 
    release { 
     runProguard true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 
+2

proguard.config = $ {sdk。dir} \ tools \ proguard \ proguard-android.txt:proguard-project.txtを削除し、proguard.cfgを削除すると動作しました –

関連する問題