Android, Proguard und Javamail

Zunächst einmal habe ich bereits auf einen ähnlichen Beitrag verwiesen,Android, Javamail und Proguard

Die erwähnte Lösung bestand darin, das Folgende in proguard-project.txt explizit beizubehalten:

-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**

-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}

-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}

Auf den ersten Blick schien dies zu funktionieren, da es ohne Vorwarnung kompiliert wurde. Es schlägt jedoch beim Lesen des Nachrichteninhalts fehl und überspringt ihn einfach. Ich habe Folgendes versucht:

-includelibraryjars benennt explizit die 3 für javamail erforderlichen JAR-Dateien.-die jars als externe bibliothek entfernt und dabei dem neuen libs / include-format gefolgt.-behalten Sie die Standard-Android-Einstellungen in proguard-android.txt-Folgte der Anleitung zur Fehlerbehebung in der Proguard-FAQ.-Starte ein neues Projekt und kopiere es über die Quelldateien.-versuchte verschiedene Proguard-Optionen, einschließlich -dontshrink, keepnames, etc-obsessives Projekt / sauber

Nach ein paar Stunden der Frustration stellte ich fest, dass das Folgende zu funktionieren schien:

-dontobfuscate
-dontshrink
-keepdirectories
-keeppackagenames javax.mail.**
-keeppackagenames javax.activation.**
-keeppackagenames com.sun.mail.**
-keeppackagenames myjava.**
-keeppackagenames org.apache.harmony.**
-keeppackagenames mailcap.**
-keeppackagenames mimetypes.**
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}

-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}

-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**

Das ist natürlich absurd, weil ich -dontobfuscate und -dontshrink einschalte. Haben Proguard- und Javamail-Gurus eine Lösung dafür? Ich bin ADT17 und benutze 2.1 (api7) für den Build. Wenn ich die Gläser vielleicht ganz aus dem Prozess ausschließen könnte? Jeder Rat wird an dieser Stelle ein Geschenk des Himmels sein.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage