Java 在Android上打开SSH连接

Java 在Android上打开SSH连接,java,android,ssh,jsch,Java,Android,Ssh,Jsch,我试图在Android上打开SSH连接,但每当我调用该方法来执行SSH命令时,应用程序就会崩溃。我正在调用MainActivity中的方法,如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Asy

我试图在Android上打开SSH连接,但每当我调用该方法来执行SSH命令时,应用程序就会崩溃。我正在调用MainActivity中的方法,如下所示:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new AsyncTask<Integer, Void, Void>(){
               @Override
               protected Void doInBackground(Integer... params) {
                   try {
                         SSH.openSSH();
                   } catch (Exception e) {
                         e.printStackTrace();
                   }
                   return null;
               }
            }.execute(1);
    }
但我得到的错误如下:

public static void openSSH() throws JSchException, IOException
    {
        JSch jsch = new JSch();

        jsch.setKnownHosts("known_hosts.txt");

        Session session = jsch.getSession(username, hostname, port);
        session.setPassword(password);
        session.connect();

        ChannelExec channelExec = (ChannelExec)session.openChannel("exec");

        String rawData = getData(channelExec);
        String[] data = parseData(rawData);
        setData(data);

        channelExec.disconnect();
        session.disconnect();
    }
12-26 18:07:54.606: E/AndroidRuntime(29704): FATAL EXCEPTION: AsyncTask #1
12-26 18:07:54.606: E/AndroidRuntime(29704): java.lang.RuntimeException: An error occured while executing doInBackground()
12-26 18:07:54.606: E/AndroidRuntime(29704):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.lang.Thread.run(Thread.java:856)
12-26 18:07:54.606: E/AndroidRuntime(29704): Caused by: java.lang.NoClassDefFoundError: com.jcraft.jsch.JSch
12-26 18:07:54.606: E/AndroidRuntime(29704):    at com.example.raspberrypi.SSH.openSSH(SSH.java:26)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at com.example.raspberrypi.MainActivity$1.doInBackground(MainActivity.java:19)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at com.example.raspberrypi.MainActivity$1.doInBackground(MainActivity.java:1)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-26 18:07:54.606: E/AndroidRuntime(29704):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-26 18:07:54.606: E/AndroidRuntime(29704):    ... 4 more

有人能解释一下我做错了什么吗?

引起的:java.lang.NoClassDefFoundError:com.jcraft.jsch.jsch
似乎是一个强烈的暗示。你的项目中有这个类吗?你有没有将class
com.jcraft.jsch.jsch
添加到你的
AndroidManifest.xml
文件中?好像我忘了这么做,我会试试看是否有帮助。我将
添加到
AndroidManifest.xml
文件中,jar在引用库下面,但现在它给了我
安装错误:安装失败\u缺少\u共享\u库
错误。