0

アプリでネットワーク アクセス用の電子メールと httpclient を送信するために javamail API を使用しています。デモgmailsenderを参照します。リンクは次のとおりです。デフォルト/組み込みアプリを使用せずにJavaMail APIを使用してAndroidでメールを送信する

デバッグ時にエラーは発生せず、携帯電話で APK をスムーズに実行できます。ただし、proguard を使用して署名付き APK を生成しようとすると、コンソールに「Proguard がエラー コード 1 で返されました」と表示されることがわかりましたが、解決策としてはそうしていますAndroid、javamail、および proguard。その結果、Proguard で APK をビルドできません。

誰か助けてくれませんか?コンソールには次のように表示されました。

Proguard returned with error code 1. See console
[2013-09-06 10:32:25 - ] Note: there were 1487 duplicate class definitions.
[2013-09-06 10:32:25 - ] Warning: library class org.apache.log4j.net.SMTPAppender$1    extends  or implements program class javax.mail.Authenticator
[2013-09-06 10:32:25 - ] Warning: there were 1 instances of library classes depending on program classes.
[2013-09-06 10:32:25 - ]          You must avoid such dependencies, since the program classes will
[2013-09-06 10:32:25 - ]          be processed, while the library classes will remain unchanged.
[2013-09-06 10:32:25 - ]         (http://proguard.sourceforge.net/manual/troubleshooting.html#dependency)
[2013-09-06 10:32:25 - ] java.io.IOException: Please correct the above warnings first.
[2013-09-06 10:32:25 - ]    at proguard.Initializer.execute(Initializer.java:369)
[2013-09-06 10:32:25 - ]    at proguard.ProGuard.initialize(ProGuard.java:212)
[2013-09-06 10:32:25 - ]    at proguard.ProGuard.execute(ProGuard.java:87)
[2013-09-06 10:32:25 - ]    at proguard.ProGuard.main(ProGuard.java:484)
4

1 に答える 1

0

重複するクラスに関する注意は、ファイルで -injars オプションまたは -libraryjars オプションを指定していることを示唆していdexguard-project.txtます。Android ビルド プロセスでは、必要なすべての -injars、-outjars、および -libraryjars が既に指定されているため、これを行うべきではありません。

その後、欠落しているクラスに関する警告が表示された場合は、おそらく ProGuard にそれらを無視させることができます。たとえば、次のようになります。

-dontwarn somepackage.SomeMissingClass

Cfr. ProGuard マニュアル > トラブルシューティング >警告: スーパークラスまたはインターフェイスが見つかりません

于 2013-09-07T15:26:17.343 に答える