简体   繁体   English

android中jcraft jsch SFTP库的ClassNotFound异常

[英]ClassNotFound Exception for jcraft jsch SFTP library in android

I am trying to upload the files using SFTP from android device using jcraft's jsch library.我正在尝试使用 jcraft 的 jsch 库从 android 设备使用 SFTP 上传文件。 In debug mode of application the process works absolutely fine, and I'm able to upload the files properly.在应用程序的调试模式下,该过程完全正常,我能够正确上传文件。 But when I build application in release mode, jsch library is throwing following exception.但是当我在发布模式下构建应用程序时,jsch 库抛出以下异常。

01-08 11:48:00.905 8083-8182/? W/System.err: b.c.a.c0: java.lang.ClassNotFoundException: com.jcraft.jsch.jce.Random
01-08 11:48:00.905 8083-8182/? W/System.err:     at b.c.a.d1.a()
01-08 11:48:00.905 8083-8182/? W/System.err:     at b.c.a.d1.a()
01-08 11:48:00.905 8083-8182/? W/System.err:     at b.d.b.i.b.a()
01-08 11:48:00.905 8083-8182/? W/System.err:     at b.d.b.i.b.doInBackground()
01-08 11:48:00.906 8083-8182/? W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:292)
01-08 11:48:00.906 8083-8182/? W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
01-08 11:48:00.906 8083-8182/? W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
01-08 11:48:00.906 8083-8182/? W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
01-08 11:48:00.906 8083-8182/? W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
01-08 11:48:00.906 8083-8182/? W/System.err:     at java.lang.Thread.run(Thread.java:818)
01-08 11:48:00.906 8083-8182/? W/System.err: Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.jce.Random
01-08 11:48:00.907 8083-8182/? W/System.err:     at java.lang.Class.classForName(Native Method)
01-08 11:48:00.907 8083-8182/? W/System.err:     at java.lang.Class.forName(Class.java:309)
01-08 11:48:00.907 8083-8182/? W/System.err:     at java.lang.Class.forName(Class.java:273)
01-08 11:48:00.907 8083-8182/? W/System.err:    ... 10 more
01-08 11:48:00.907 8083-8182/? W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.jcraft.jsch.jce.Random" on path: DexPathList[[zip file "/data/app/com.spirituspay.spaycardapplication-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
01-08 11:48:00.908 8083-8182/? W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
01-08 11:48:00.908 8083-8182/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-08 11:48:00.908 8083-8182/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
01-08 11:48:00.908 8083-8182/? W/System.err:    ... 13 more
01-08 11:48:00.908 8083-8182/? W/System.err:    Suppressed: java.lang.ClassNotFoundException: com.jcraft.jsch.jce.Random
01-08 11:48:00.908 8083-8182/? W/System.err:     at java.lang.Class.classForName(Native Method)
01-08 11:48:00.908 8083-8182/? W/System.err:     at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
01-08 11:48:00.908 8083-8182/? W/System.err:     at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
01-08 11:48:00.908 8083-8182/? W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
01-08 11:48:00.908 8083-8182/? W/System.err:        ... 14 more
01-08 11:48:00.908 8083-8182/? W/System.err:    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available'

I have tried replacing gradle library with local JAR, also tried by disabling the proGuard rules in release mode.我曾尝试用本地 JAR 替换 gradle 库,也尝试过在发布模式下禁用 proGuard 规则。

What else might be the cause of this?还有什么可能是造成这种情况的原因?

Please let me know if you need any other information for diagnostic.如果您需要任何其他诊断信息,请告诉我。

add to proguard-rules.pro: -keep class com.jcraft.jsch.** { *;添加到 proguard-rules.pro: -keep class com.jcraft.jsch.** { *; } }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM