4

現在、既存の Android アプリケーション用に Maven ビルドをセットアップしようとしています。(以前はAntで構築されていました)プロガードの難読化を実行しているときに、次のような多くの警告が表示されます。

...
can't find referenced class org.apache.http.params.BasicHttpParams
can't find referenced class org.apache.http.params.BasicHttpParams
can't find referenced class org.apache.http.params.HttpConnectionParams
can't find referenced class org.apache.http.params.HttpConnectionParams
can't find referenced class org.apache.http.impl.client.DefaultHttpClient
can't find referenced class org.apache.http.impl.client.DefaultHttpClient
can't find referenced class org.apache.http.impl.client.DefaultHttpClient
can't find referenced class org.apache.http.auth.AuthScope
can't find referenced class org.apache.http.auth.AuthScope
can't find referenced class org.apache.http.auth.UsernamePasswordCredentials
...

欠落している参照は、org.apache.httpパッケージからのものです。それらはandroid.jarに含めるべきだと思いました。私はandroid-maven-pluginバージョン3.2.0を使用しています。次の android 依存関係が pom.xml で定義されています。

<dependency>
 <groupId>android</groupId>
 <artifactId>android</artifactId>
 <version>4.0.3_r3</version>
 <scope>provided</scope>
</dependency>

maven-android-sdk-deployerを使用して Android 依存関係をインストールしました。

この種のエラーの正しい解決策は何ですか? 難読化なしでビルドは成功し、結果の APK は完全に正常に動作します。私はプロガード設定ファイルを変更していません。(antとの組み合わせで動作しました)

4

1 に答える 1

1

com.sun.mailパッケージを実装したアプリケーションを難読化しようとしたときに、Proguardの難読化で同じ問題が発生したことがあります。Proguardがこのライブラリ(パッケージ)内から参照されたクラスを見つけることができなかったという警告がいくつかありました。

解決策として、次の行で警告を抑制しました -dontwarn com.sun.**。すべてがうまくいき、com.mail.sunライブラリのすべてのクラスと関数は、デプロイされたアプリケーションの魅力のように機能し、Proguardはもうそれについて不平を言っていませんでした;)

したがって、あなたの場合、次の行を追加します。 -dontwarn org.apache.**

于 2012-06-27T09:49:09.190 に答える