Я использую 2.1 SDK, который может иметь значение. У меня также есть довольно сложное письмо. Но теперь я отсортировал его, обновившись до proguard 4.6 и добавив следующие строки в мой proguard, cfg:
-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.** {*;}
Последняя группа строк нетривиальна. Я получил его, запустив команды tar tf для каждого из jar-пакетов в пакете javamail.
Обновление для SDK 17
Android SDK 17 вносит некоторые изменения в способ загрузки jar-файлов. Если у вас есть проект, который использует внешние файлы jar, обновление до SDK 17 или более поздней версии, вероятно, сломает его. Чтобы исправить это, выберите «Проект»> «Свойства»> «Путь сборки Java»> «Порядок и экспорт» в меню и установите флажки слева от трех jar-файлов, используемых javamail. Это гарантирует, что банки будут экспортированы в целевую сборку. Без этого исправления проект все еще будет собираться, но javamail больше не будет работать, и proguard также не будет работать. Это , а не вообще не проблема. Это проблема Android SDK. Никаких изменений в proguard.cfg не требуется.
Еще одним следствием обновления SDK является то, что больше нет необходимости обновлять Proguard вручную.