在Android上使用JSCH,UnknownHostException进行SSH连接

时间:2013-12-09 23:31:20

标签: android ssh jsch

我正在尝试使用JSCH通过SSH连接到我的服务器。

JSch jsch = new JSch();
    jsch.setConfig("StrictHostKeyChecking", "no");
    session = jsch.getSession(this.username, this.host, 22);
    session.setPassword(this.password);
    Properties config = new java.util.Properties();
    config.put("StrictHostKeyChecking", "no");
    session.setConfig(config);
    this.session.connect();

错误到达最后一行的session.connect

12-10 00:21:35.696: W/System.err(30732): com.jcraft.jsch.JSchException: java.net.UnknownHostException: Unable to resolve host "android.widget.EditText{4257c438 VFED..CL .F....ID 219,0-849,117 #7f080008 app:id/host}": No address associated with hostname

我可以通过Google ConnectBot成功访问我的服务器,但不是那样......

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="19"
    android:targetSdkVersion="19" />

<application
    android:debuggable="true"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
      android:name="com.exemple.myapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    />
</manifest>

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

如果this.host是Edit文本,那么你必须在jsch.getSession()中调用this.host.getText()。toString()。对于用户名和密码也是如此,如果它们也是编辑文本对象的话。