【发布时间】:2016-01-26 20:12:38
【问题描述】:
我正在使用此代码:
ftpClient.connect(InetAddress.getByName(10.0.0.100));
ftpClient.login(user, password);
ftpClient.changeWorkingDirectory(serverRoad);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
BufferedInputStream buffIn=null;
buffIn=new BufferedInputStream(new FileInputStream(file));
ftpClient.enterLocalPassiveMode();
ftpClient.storeFile("test.txt", buffIn);
buffIn.close();
ftpClient.logout();
ftpClient.disconnect();
我的项目在这一行崩溃了
ftpClient.connect(InetAddress.getByName(server));
所以服务器 ip 必须是假的,我使用了运行服务器的 pc 的 ip。 IP:10.0.0.100 这个ip有什么问题?
顺便说一句,我正在使用 apache commons
然后它向我抛出了这个:
D: [NET] android_getaddrinfofornet+,hn 16(0x6674703a2f2f31),sn(),hints(known),family 0,flags 4
D: [NET] android_getaddrinfofornet-, err=8
W: android.os.NetworkOnMainThreadException
W: at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1155)
W: at java.net.InetAddress.lookupHostByName(InetAddress.java:418)
W: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
W: at java.net.InetAddress.getByName(InetAddress.java:305)
W: at com.example.mathias.newproject.MainActivity.connnectingwithFTP(MainActivity.java:89)
W: at com.example.mathias.newproject.MainActivity$2.onClick(MainActivity.java:52)
W: at android.view.View.performClick(View.java:4785)
W: at android.view.View$PerformClick.run(View.java:19858)
W: at android.os.Handler.handleCallback(Handler.java:739)
W: at android.os.Handler.dispatchMessage(Handler.java:95)
W: at android.os.Looper.loop(Looper.java:155)
W: at android.app.ActivityThread.main(ActivityThread.java:5696)
W: at java.lang.reflect.Method.invoke(Native Method)
W: at java.lang.reflect.Method.invoke(Method.java:372)
W: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
W: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mathias.newproject" >
<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" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
【问题讨论】:
-
您的清单中有 Internet 权限吗?请分享 logcat
-
共享日志以及声明变量“server”的 sn-p
-
添加了 logcat 和 manifest @Santiago
-
@darthvading 变量“服务器”在“10.0.0.100”中声明为字符串
-
@Ribisl EACCES 表示这很可能是内部错误,您甚至没有尝试检查给定的 IP。检查答案以获取可能需要的其他权限。
标签: android ftp-client ipv4