Solution 1 :
Change for
-keep class com.sun.mail.imap.IMAPProvider
-keep class com.sun.mail.imap.IMAPSSLProvider
-keep class com.sun.mail.smtp.** {*;}
Solution 2 :
It might not be a good idea but i disabled the proguard to bypass this error.
Problem :
I have an app that uses these two dependencies for email purposes
implementation 'com.sun.mail:android-mail:1.6.2'
implementation 'com.sun.mail:android-activation:1.6.2
and when i install app through android studio it work fine but when i use signed apk version of it
it give me this error
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:453)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:371)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:416)
at java.util.ServiceLoader$1.next(ServiceLoader.java:494)
at c.b.u.e(Unknown Source:27)
at c.b.u.b(Unknown Source:86)
at c.b.u.b(Unknown Source:4)
at c.b.u.c(Unknown Source:12)
at c.b.u.a(Unknown Source:46)
at c.b.w.a(Unknown Source:115)
at c.b.w.a(Unknown Source:8)
at com.remoteyourcam.usb.Photobooth.Activity.Preview$m.a(Unknown Source:126)
at com.remoteyourcam.usb.Photobooth.Activity.Preview$m.doInBackground(Unknown Source:2)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.sun.mail.imap.IMAPProvider" on path: DexPathList[[zip file "/data/app/com.clusterclearevents.photobooth-rPxo-9SQszD9939gUZE1zg==/base.apk"],nativeLibraryDirectories=[/data/app/com.clusterclearevents.photobooth-rPxo-9SQszD9939gUZE1zg==/lib/arm, /data/app/com.clusterclearevents.photobooth-rPxo-9SQszD9939gUZE1zg==/base.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)```
And this is my proguard rules.
-keep class com.sun.mail.imap.IMAPSSLProvider
-keep class com.sun.mail.smtp. {*;}
-keep class com.sun.mail.handlers.
-dontwarn com.sun.mail.handlers.handler_base```
This is my build script file from this project
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Comments
Comment posted by SHAZ
Nope it didn’t worked i have tried this before and still proguard rules are not showing any positives signs
Comment posted by Alexander Dadukin
can you please attach your build script as well?
Comment posted by SHAZ
i have attached my buildscript in detail section
Comment posted by Alexander Dadukin
I meant the one inside of app folder
Comment posted by SHAZ
do you mean build.gradle
Comment posted by stackoverflow.com/questions/48253847/…
I wouldn’t do that. Maybe you could adding