簡體   English   中英

我的應用程序在調試模式下運行良好,但使用簽名的 APK 時會崩潰

[英]My App work fine in debug mode but with signed APK it crashes

我有一個應用程序將這兩個依賴項用於 email 目的

implementation 'com.sun.mail:android-mail:1.6.2' implementation 'com.sun.mail:android-activation: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

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'

}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

保護文件視圖

為。。改變

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

這可能不是一個好主意,但我禁用了 proguard 來繞過這個錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM