Java 我的应用程序在调试模式下工作正常,但使用签名APK时崩溃

Java 我的应用程序在调试模式下工作正常,但使用签名APK时崩溃,java,android,email,Java,Android,Email,我有一个应用程序将这两个依赖项用于电子邮件目的 implementation'com.sun.mail:android mail:1.6.2' implementation'com.sun.mail:android激活:1.6.2 当我通过android studio安装应用程序时,它工作正常,但当我使用它的签名apk版本时 它给了我这个错误 at java.lang.Class.classForName(Native Method) at java.lang.C

我有一个应用程序将这两个依赖项用于电子邮件目的

implementation'com.sun.mail:android mail:1.6.2'
implementation'com.sun.mail:android激活:1.6.2

当我通过android studio安装应用程序时,它工作正常,但当我使用它的签名apk版本时 它给了我这个错误

        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)```




这是我的规则

-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

更改为

-keep class com.sun.mail.imap.IMAPProvider
-keep class com.sun.mail.imap.IMAPSSLProvider
-keep class com.sun.mail.smtp.** {*;}
换成

-keep class com.sun.mail.imap.IMAPProvider
-keep class com.sun.mail.imap.IMAPSSLProvider
-keep class com.sun.mail.smtp.** {*;}

这可能不是一个好主意,但我禁用了proguard以绕过此错误。

这可能不是一个好主意,但我禁用了proguard以绕过此错误。

不,它不起作用。我以前尝试过此方法,但proguard规则仍没有显示任何积极迹象。请同时附加构建脚本?我已附加了我的buildscript in detail section我是说app folder里面的那一个你是说build.gradleNope它不起作用我以前试过,但proguard规则没有显示任何积极的迹象扫描你也请附加你的构建脚本?我已经附加了我的buildscript in detail section我是说app folder里面的那一个你是说格雷德利不会那么做的。也许你可以将
可调试的true
添加到你的gradle文件中:我不会这么做。也许您可以将
可调试的true
添加到gradle文件中: