有关代码:
public static void uploadFile() {
File sdDir = Environment.getExternalStorageDirectory();
String tmpFile = sdDir.toString();
File file = new File(tmpFile);
FTPUtil ft = new FTPUtil();
Session s = ft.getSession("",
, "",
"");
Channel channel = ft.getChannel(s);
ChannelSftp sftp = (ChannelSftp)channel;
String upload = ft.uploadFile(sftp,"",file);
System.out.println(upload);
ft.closeAll(sftp, channel, s); //关闭连接
}
public Channel getChannel(Session session) {
Channel channel = null;
try {
channel = session.openChannel("sftp");
channel.connect();
Log.i(TAG,"得到渠道成功!");
} catch (JSchException e) {
Log.i(TAG,"得到渠道失败!");
e.printStackTrace();
}
return channel;
}
public Session getSession(String host, int port, String username,
final String password) {
Session session = null;
try {
JSch jsch = new JSch();
jsch.getSession(username, host, port);
session = jsch.getSession(username, host, port);
session.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
session.setConfig(sshConfig);
session.connect();
Log.i(TAG,"Session connected!");
} catch (JSchException e) {
Log.i(TAG,"get Channel failed!");
e.printStackTrace();
}
return session;
}
报错信息:
I/FTPUtil: get Channel failed!
W/System.err: com.jcraft.jsch.JSchException: java.lang.ClassNotFoundException: com.jcraft.jsch.jce.Random
W/System.err: at com.jcraft.jsch.x0.p(:198)
W/System.err: at com.jcraft.jsch.x0.o(:183)
W/System.err: at com.dji.sdk.sample.mqtt.utils.FTPUtil.getSession(:59)
W/System.err: at com.dji.sdk.sample.mqtt.utils.FTPUtil.uploadFile(:25)
W/System.err: at com.dji.sdk.sample.internal.view.MainContent$5.onClick(:224)
W/System.err: at android.view.View.performClick(View.java:6659)
W/System.err: at android.view.View.performClickInternal(View.java:6631)
W/System.err: at android.view.View.access$3100(View.java:790)
W/System.err: at android.view.View$PerformClick.run(View.java:26187)
W/System.err: at android.os.Handler.handleCallback(Handler.java:907)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err: at android.os.Looper.loop(Looper.java:216)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7625)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
W/System.err: Caused by: java.lang.ClassNotFoundException: com.jcraft.jsch.jce.Random
W/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.Class.forName(Class.java:453)
W/System.err: at java.lang.Class.forName(Class.java:378)
W/System.err: at com.jcraft.jsch.x0.p(:194)
W/System.err: ... 15 more
W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.jcraft.jsch.jce.Random" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.dji.sdk.sample-xz8WlTx80QLqJnuUY8a1VA==/base.apk", dex file "InMemoryDexFile[cookie=[0, 529345591360]]", dex file "InMemoryDexFile[cookie=[0, 529345594816]]"],nativeLibraryDirectories=[/data/app/com.dji.sdk.sample-xz8WlTx80QLqJnuUY8a1VA==/lib/arm64, /data/app/com.dji.sdk.sample-xz8WlTx80QLqJnuUY8a1VA==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 19 more
I/FTPUtil: 得到渠道失败!
W/System.err: com.jcraft.jsch.JSchException: session is down
W/System.err: at com.jcraft.jsch.x0.D(:861)
W/System.err: at com.dji.sdk.sample.mqtt.utils.FTPUtil.getChannel(:38)
W/System.err: at com.dji.sdk.sample.mqtt.utils.FTPUtil.uploadFile(:28)
W/System.err: at com.dji.sdk.sample.internal.view.MainContent$5.onClick(:224)
W/System.err: at android.view.View.performClick(View.java:6659)
W/System.err: at android.view.View.performClickInternal(View.java:6631)
W/System.err: at android.view.View.access$3100(View.java:790)
W/System.err: at android.view.View$PerformClick.run(View.java:26187)
W/System.err: at android.os.Handler.handleCallback(Handler.java:907)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err: at android.os.Looper.loop(Looper.java:216)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7625)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
I/FTPUtil: 上传失败!
I/System.out: 上传失败!
I/Choreographer: Skipped 6095 frames! The application may be doing too much work on its main thread.
I/ViewRootImpl: jank_removeInvalidNode all the node in jank list is out of time
I/DJILocationManager: We waited enough for GPS, switching to Network provider...
I/DJILocationManager: Network is enabled, getting location...
I/DJILocationManager: LastKnownLocation is not usable.
Ask for location update...
D/ZrHung.AppEyeUiProbe: sendAppEye recover Events.
D/: [ZeroHung]zrhung_send_event: wp=280, ret=0