无法连接到 ftp 服务器 android ftp 应用程序
Could not connect to ftp server android ftp application
我正在尝试在 android studio 中构建一个 FTP 应用程序,但我似乎无法让它工作。经过一些调试后,我能够避免代码中的一些错误,但现在当我尝试连接到我在 Ubuntu 中创建的本地 ftp 服务器时,我收到以下消息 "Error: could not connect to host 192.168.1.2"(我的ftp 从笔记本电脑的终端连接时服务器工作正常)。该应用程序可以正常编译和安装。下面是来自 MainActivity.java
的代码
public boolean bindService(Intent service, ServiceConnection conn, int flags) {
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
connect = (Button) findViewById(R.id.connect_button);
connect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isNetworkAvailable()) {
new FTPConnect().execute();
} else {
AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
b.setMessage("Internet connectivity failure.Try again!");
b.show();
}
}
});
}
class FTPConnect extends AsyncTask<Void, Void, Void> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Connecting...");
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ftpClient = new FTPClient();
try {
ftpClient.connect(FTPSERVER, PORT);
ftpClient.login(USERNAME, PASSWORD);
ftpClient.enterLocalPassiveMode();
System.out.println("status :: " + ftpClient.getStatus());
setContentView(R.layout.connected);
textView = (TextView) findViewById(R.id.textView);
FTPFile[] files = ftpClient.listFiles();
DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (FTPFile file : files) {
String details = file.getName();
if (file.isDirectory()) {
details = "[" + details + "]";
}
details += "\t\t" + file.getSize();
details += "\t\t" + dateFormater.format(file.getTimestamp().getTime());
System.out.println(details);
}
} catch (Exception e) {
Log.d(TAG, "Error: could not connect to host " + FTPSERVER);
}
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
if (null != pDialog && pDialog.isShowing()) {
pDialog.dismiss();
}
super.onPostExecute(result);
}
}
// Check Internet Connection
public boolean isNetworkAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (NetworkInfo anInfo : info) {
if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
Logcat:
07-03 23:43:34.901 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:延迟启用CheckJNI
07-03 23:43:35.051 16781-16781/com.example.vagil.ftpclient_1 D/ActivityThread:setTargetHeapUtilization:0.25
07-03 23:43:35.051 16781-16781/com.example.vagil.ftpclient_1 D/ActivityThread﹕setTargetHeapIdealFree:8388608
07-03 23:43:35.051 16781-16781/com.example.vagil.ftpclient_1 D/ActivityThread﹕setTargetHeapConcurrentStart:2097152
07-03 23:43:35.391 16781-16781/com.example.vagil.ftpclient_1 I/dalvikvm:找不到方法android.view.ViewGroup.onRtlPropertiesChanged,引用自方法android.support。 v7.widget.Toolbar.onRtlPropertiesChanged
07-03 23:43:35.391 16781-16781/com.example.vagil.ftpclient_1 W/dalvikvm:VFY: unable to resolve virtual method 13338: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I )V
07-03 23:43:35.391 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:VFY:在0x0007替换操作码0x6f
07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 I/dalvikvm:找不到方法android.content.res.TypedArray.getChangingConfigurations,引用自方法android.support。 v7.internal.widget.TintTypedArray.getChangingConfigurations
07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 W/dalvikvm﹕VFY: unable to resolve virtual method 413: Landroid/content/res/TypedArray;.getChangingConfigurations()我
07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:VFY:在0x0002替换操作码0x6e
07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 I/dalvikvm:找不到方法android.content.res.TypedArray.getType,引用自方法android.support。 v7.internal.widget.TintTypedArray.getType
07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 W/dalvikvm:VFY: unable to resolve virtual method 435: Landroid/content/res/TypedArray;.getType (I )我
07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:VFY:在0x0002替换操作码0x6e
07-03 23:43:35.511 16781-16781/com.example.vagil.ftpclient_1 D/libEGL:加载/system/lib/egl/libEGL_adreno200.so
07-03 23:43:35.511 16781-16781/com.example.vagil.ftpclient_1 D/libEGL:加载/system/lib/egl/libGLESv1_CM_adreno200.so
07-03 23:43:35.521 16781-16781/com.example.vagil.ftpclient_1 D/libEGL:加载/system/lib/egl/libGLESv2_adreno200.so
07-03 23:43:35.521 16781-16781/com.example.vagil.ftpclient_1 I/Adreno200-EGL:EGL 1.4 QUALCOMM 构建:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107_msm8625_JB_REL_2.0.3_CL3357771_release_AU (CL3357771)
建造日期:2013 年 2 月 25 日星期一
本地分支机构:
远程分支:quic/jb_rel_2.0.3
本地补丁:NONE
重建分支:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107 + NOTHING
07-03 23:43:35.551 16781-16781/com.example.vagil.ftpclient_1 D/OpenGLRenderer:开启调试模式0
07-03 23:43:54.211 16781-16781/com.example.vagil.ftpclient_1 I/AppCompatDelegate﹕ Activity的LayoutInflater已经出厂安装所以不能安装AppCompat的
07-03 23:45:45.431 16781-16781/com.example.vagil.ftpclient_1 D/MainActivity﹕错误:无法连接到主机192.168.1.2
问题已解决。我正在使用 运行OnUiThread(new Runnable() 来 运行 与 ftp 服务器的连接。删除它后我就可以连接了。
我正在尝试在 android studio 中构建一个 FTP 应用程序,但我似乎无法让它工作。经过一些调试后,我能够避免代码中的一些错误,但现在当我尝试连接到我在 Ubuntu 中创建的本地 ftp 服务器时,我收到以下消息 "Error: could not connect to host 192.168.1.2"(我的ftp 从笔记本电脑的终端连接时服务器工作正常)。该应用程序可以正常编译和安装。下面是来自 MainActivity.java
的代码public boolean bindService(Intent service, ServiceConnection conn, int flags) {
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
connect = (Button) findViewById(R.id.connect_button);
connect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isNetworkAvailable()) {
new FTPConnect().execute();
} else {
AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
b.setMessage("Internet connectivity failure.Try again!");
b.show();
}
}
});
}
class FTPConnect extends AsyncTask<Void, Void, Void> {
ProgressDialog pDialog;
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Connecting...");
pDialog.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ftpClient = new FTPClient();
try {
ftpClient.connect(FTPSERVER, PORT);
ftpClient.login(USERNAME, PASSWORD);
ftpClient.enterLocalPassiveMode();
System.out.println("status :: " + ftpClient.getStatus());
setContentView(R.layout.connected);
textView = (TextView) findViewById(R.id.textView);
FTPFile[] files = ftpClient.listFiles();
DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (FTPFile file : files) {
String details = file.getName();
if (file.isDirectory()) {
details = "[" + details + "]";
}
details += "\t\t" + file.getSize();
details += "\t\t" + dateFormater.format(file.getTimestamp().getTime());
System.out.println(details);
}
} catch (Exception e) {
Log.d(TAG, "Error: could not connect to host " + FTPSERVER);
}
}
});
return null;
}
@Override
protected void onPostExecute(Void result) {
if (null != pDialog && pDialog.isShowing()) {
pDialog.dismiss();
}
super.onPostExecute(result);
}
}
// Check Internet Connection
public boolean isNetworkAvailable() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (NetworkInfo anInfo : info) {
if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
Logcat:
07-03 23:43:34.901 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:延迟启用CheckJNI 07-03 23:43:35.051 16781-16781/com.example.vagil.ftpclient_1 D/ActivityThread:setTargetHeapUtilization:0.25 07-03 23:43:35.051 16781-16781/com.example.vagil.ftpclient_1 D/ActivityThread﹕setTargetHeapIdealFree:8388608 07-03 23:43:35.051 16781-16781/com.example.vagil.ftpclient_1 D/ActivityThread﹕setTargetHeapConcurrentStart:2097152 07-03 23:43:35.391 16781-16781/com.example.vagil.ftpclient_1 I/dalvikvm:找不到方法android.view.ViewGroup.onRtlPropertiesChanged,引用自方法android.support。 v7.widget.Toolbar.onRtlPropertiesChanged 07-03 23:43:35.391 16781-16781/com.example.vagil.ftpclient_1 W/dalvikvm:VFY: unable to resolve virtual method 13338: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I )V 07-03 23:43:35.391 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:VFY:在0x0007替换操作码0x6f 07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 I/dalvikvm:找不到方法android.content.res.TypedArray.getChangingConfigurations,引用自方法android.support。 v7.internal.widget.TintTypedArray.getChangingConfigurations 07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 W/dalvikvm﹕VFY: unable to resolve virtual method 413: Landroid/content/res/TypedArray;.getChangingConfigurations()我 07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:VFY:在0x0002替换操作码0x6e 07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 I/dalvikvm:找不到方法android.content.res.TypedArray.getType,引用自方法android.support。 v7.internal.widget.TintTypedArray.getType 07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 W/dalvikvm:VFY: unable to resolve virtual method 435: Landroid/content/res/TypedArray;.getType (I )我 07-03 23:43:35.401 16781-16781/com.example.vagil.ftpclient_1 D/dalvikvm:VFY:在0x0002替换操作码0x6e 07-03 23:43:35.511 16781-16781/com.example.vagil.ftpclient_1 D/libEGL:加载/system/lib/egl/libEGL_adreno200.so 07-03 23:43:35.511 16781-16781/com.example.vagil.ftpclient_1 D/libEGL:加载/system/lib/egl/libGLESv1_CM_adreno200.so 07-03 23:43:35.521 16781-16781/com.example.vagil.ftpclient_1 D/libEGL:加载/system/lib/egl/libGLESv2_adreno200.so 07-03 23:43:35.521 16781-16781/com.example.vagil.ftpclient_1 I/Adreno200-EGL:EGL 1.4 QUALCOMM 构建:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107_msm8625_JB_REL_2.0.3_CL3357771_release_AU (CL3357771) 建造日期:2013 年 2 月 25 日星期一 本地分支机构: 远程分支:quic/jb_rel_2.0.3 本地补丁:NONE 重建分支:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107 + NOTHING 07-03 23:43:35.551 16781-16781/com.example.vagil.ftpclient_1 D/OpenGLRenderer:开启调试模式0 07-03 23:43:54.211 16781-16781/com.example.vagil.ftpclient_1 I/AppCompatDelegate﹕ Activity的LayoutInflater已经出厂安装所以不能安装AppCompat的 07-03 23:45:45.431 16781-16781/com.example.vagil.ftpclient_1 D/MainActivity﹕错误:无法连接到主机192.168.1.2
问题已解决。我正在使用 运行OnUiThread(new Runnable() 来 运行 与 ftp 服务器的连接。删除它后我就可以连接了。