2015-02-09 87 views
2

由於某些原因,升級到棒棒糖(5.0.2)後jsch停止工作。我得到這個錯誤。Jsch Suppressed:java.lang.ClassNotFoundException:Lorg.ietf.jgss.Oid

Caused by: java.lang.ClassNotFoundException: Didn't find class 
    "Lorg.ietf.jgss.Oid" on path: DexPathList[[zip file"/data/app 
    /com.**-1/base.apk"],nativeLibraryDirectories= [/vendor/lib, 
    /system/lib]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
... 14 more 
Suppressed: java.lang.ClassNotFoundException: org.ietf.jgss.Oid 
at java.lang.Class.classForName(Native Method) 
at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
... 15 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the 
boot class loader; no stack available 

這是我的代碼。

try { 
    JSch jsch = new JSch(); 
    session = jsch.getSession(userName, remoteHost, port); 
    session.setPassword(userPassword); 

    Properties prop = new Properties(); 
    prop.put("StrictHostKeyChecking", "no"); 
    session.setConfig(prop); 

    session.connect(); 

    channel = session.openChannel("sftp");   
    channel.connect(); 
    channelSftp = (ChannelSftp)channel; 

} catch (Exception ex) { 
    ex.printStackTrace(); 
    session.disconnect(); 
} 

我檢測,當屬性被添加「StrictHostKeyChecking」出現該問題,只有當執行「session.connect()」程序關閉。

如果我省略此屬性,程序不會失敗,但無法連接。

任何想法?

謝謝。

回答

0

我有同樣的問題。該問題是由找不到用於GSS-API的Lorg.ietf.jgss.Oid引起的。我發現這可以避免與偏好密碼認證:

try { 
    JSch jsch = new JSch(); 
    session = jsch.getSession(userName, remoteHost, port); 
    session.setPassword(userPassword); 

    Properties prop = new Properties(); 
    prop.put("StrictHostKeyChecking", "no"); 
    session.setConfig(prop); 

    session.setConfig("PreferredAuthentications", 
       "password"); //add this line to your code 

    session.connect(); 

    channel = session.openChannel("sftp");   
    channel.connect(); 
    channelSftp = (ChannelSftp)channel; 

} catch (Exception ex) { 
    ex.printStackTrace(); 
    session.disconnect(); 
} 
+0

謝謝,作品完美! – Crakocia 2015-03-12 10:08:59