Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的JSch_Android - Fatal编程技术网

android中的JSch

android中的JSch,android,Android,我正在尝试使用这段代码连接到服务器,我在NetBeans中尝试了这段代码作为常规java框架,它可以工作,当我转移到android时,应用程序不断崩溃。我在清单中添加了其他内容,还是代码有问题 public class MainActivity extends AppCompatActivity { String host; String ip; String password; Session s; int x; @Override

我正在尝试使用这段代码连接到服务器,我在NetBeans中尝试了这段代码作为常规java框架,它可以工作,当我转移到android时,应用程序不断崩溃。我在清单中添加了其他内容,还是代码有问题

public class MainActivity extends AppCompatActivity {

    String host;
    String ip;
    String password;

    Session s;
    int x;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void onClick(View view) throws Exception {
            EditText t1 = (EditText) findViewById(R.id.editText);
            EditText t2 = (EditText) findViewById(R.id.editText2);
            EditText t3 = (EditText) findViewById(R.id.editText3);

        if (t1 != null && t2 != null && t3 != null) {
            host = t1.getText().toString();
            ip = t2.getText().toString();
            password = t3.getText().toString();

            JSch jsch = new JSch();
            Session session = jsch.getSession(host, ip, 22);
            session.setPassword(password);

            // Avoid asking for key confirmation
            Properties prop = new Properties();
            prop.put("StrictHostKeyChecking", "no");
            session.setConfig(prop);

            session.connect();

            // SSH Channel
            ChannelExec channelssh = (ChannelExec)
            session.openChannel("exec");
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            channelssh.setOutputStream(baos);

            // Execute command
            channelssh.setCommand("ls");
            channelssh.connect();
            channelssh.disconnect();
        }
        else {
            Toast.makeText(MainActivity.this, "Invaild Input", Toast.LENGTH_LONG).show();
        }
    }
}
日志:

06-27 16:28:40.607 7274-7274/com.example.mzj.cisco E/AndroidRuntime: FATAL EXCEPTION: main

 Process: com.example.mzj.cisco, PID: 7274
 java.lang.IllegalStateException: Could not execute method for android:onClick
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
           .onClick(AppCompatViewInflater.java:293)
     at android.view.View.performClick(View.java:4438)
     at android.view.View$PerformClick.run(View.java:18422)
     at android.os.Handler.handleCallback(Handler.java:733)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     at android.os.Looper.loop(Looper.java:136)
     at android.app.ActivityThread.main(ActivityThread.java:5017)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:515)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
     at dalvik.system.NativeStart.main(Native Method)
  Caused by: java.lang.reflect.InvocationTargetException
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:515)
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
          .onClick(AppCompatViewInflater.java:288)
     at android.view.View.performClick(View.java:4438) 
     at android.view.View$PerformClick.run(View.java:18422) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5017) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
     at dalvik.system.NativeStart.main(Native Method) 
  Caused by: com.jcraft.jsch.JSchException: android.os.NetworkOnMainThreadException
     at com.jcraft.jsch.Util.createSocket(Util.java:258)
     at com.jcraft.jsch.Session.connect(Session.java:186)
     at com.jcraft.jsch.Session.connect(Session.java:145)
     at com.example.mzj.cisco.MainActivity.onClick(MainActivity.java:57)
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
         .onClick(AppCompatViewInflater.java:288) 
     at android.view.View.performClick(View.java:4438) 
     at android.view.View$PerformClick.run(View.java:18422) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5017) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
     at dalvik.system.NativeStart.main(Native Method) 
  Caused by: android.os.NetworkOnMainThreadException
     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
     at libcore.io.IoBridge.connect(IoBridge.java:112)
     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
     at java.net.Socket.startupSocket(Socket.java:567)
     at java.net.Socket.tryAllAddresses(Socket.java:128)
     at java.net.Socket.<init>(Socket.java:178)
     at java.net.Socket.<init>(Socket.java:150)
     at com.jcraft.jsch.Util.createSocket(Util.java:252)
     at com.jcraft.jsch.Session.connect(Session.java:186) 
     at com.jcraft.jsch.Session.connect(Session.java:145) 
     at com.example.mzj.cisco.MainActivity.onClick(MainActivity.java:57) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener
          .onClick(AppCompatViewInflater.java:288) 
     at android.view.View.performClick(View.java:4438) 
     at android.view.View$PerformClick.run(View.java:18422) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5017) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
     at dalvik.system.NativeStart.main(Native Method) 
06-27 16:28:40.607 7274-7274/com.example.mzj.cisco E/AndroidRuntime:FATAL EXCEPTION:main
进程:com.example.mzj.cisco,PID:7274
java.lang.IllegalStateException:无法为android执行方法:onClick
在android.support.v7.app.AppCompativeViewInflater$DeclaredOnClickListener
.onClick(AppCompativeViewInflater.java:293)
在android.view.view.performClick上(view.java:4438)
在android.view.view$PerformClick.run(view.java:18422)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5017)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在android.support.v7.app.AppCompativeViewInflater$DeclaredOnClickListener
.onClick(AppCompativeViewInflater.java:288)
在android.view.view.performClick上(view.java:4438)
在android.view.view$PerformClick.run(view.java:18422)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5017)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)
原因:com.jcraft.jsch.JSchException:android.os.NetworkOnMainThreadException
位于com.jcraft.jsch.Util.createSocket(Util.java:258)
位于com.jcraft.jsch.Session.connect(Session.java:186)
位于com.jcraft.jsch.Session.connect(Session.java:145)
在com.example.mzj.cisco.MainActivity.onClick(MainActivity.java:57)上
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在android.support.v7.app.AppCompativeViewInflater$DeclaredOnClickListener
.onClick(AppCompativeViewInflater.java:288)
在android.view.view.performClick上(view.java:4438)
在android.view.view$PerformClick.run(view.java:18422)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5017)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)
原因:android.os.NetworkOnMainThreadException
在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork上(StrictMode.java:1145)
在libcore.io.BlockGuardOs.connect上(BlockGuardOs.java:84)
在libcore.io.IoBridge.ConnecterNo(IoBridge.java:127)中
在libcore.io.IoBridge.connect上(IoBridge.java:112)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
位于java.net.Socket.startupSocket(Socket.java:567)
位于java.net.Socket.tryalladdress(Socket.java:128)
位于java.net.Socket(Socket.java:178)
位于java.net.Socket(Socket.java:150)
位于com.jcraft.jsch.Util.createSocket(Util.java:252)
位于com.jcraft.jsch.Session.connect(Session.java:186)
位于com.jcraft.jsch.Session.connect(Session.java:145)
在com.example.mzj.cisco.MainActivity.onClick(MainActivity.java:57)上
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在android.support.v7.app.AppCompativeViewInflater$DeclaredOnClickListener
.onClick(AppCompativeViewInflater.java:288)
在android.view.view.performClick上(view.java:4438)
在android.view.view$PerformClick.run(view.java:18422)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5017)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)

您必须在与主线程不同的线程上执行此操作

不要回答明显重复的问题,而是将其作为重复问题关闭。