Java Android SimpleFTP上传FatalException

Java Android SimpleFTP上传FatalException,java,android,ftp,fatal-error,ftp-client,Java,Android,Ftp,Fatal Error,Ftp Client,我正在慢慢地自学Android和Java,我有一段代码,通过FTP向服务器/nas提交一个文件。到目前为止,一切都很好,除了提交。单击按钮后,我会得到一个错误,并强制关闭。我可以通过cmd、FileZilla或TinyFtp访问ftp控制台。所以,我不认为是这样。我已经导入了SimpleFTP库。任何帮助,无论是直接代码修复还是仅仅告诉我我做错了什么,我会发现的,都将不胜感激。多谢各位 这是我的密码: public class LegendsSubmitActivity extends AppC

我正在慢慢地自学Android和Java,我有一段代码,通过FTP向服务器/nas提交一个文件。到目前为止,一切都很好,除了提交。单击按钮后,我会得到一个错误,并强制关闭。我可以通过cmd、FileZilla或TinyFtp访问ftp控制台。所以,我不认为是这样。我已经导入了SimpleFTP库。任何帮助,无论是直接代码修复还是仅仅告诉我我做错了什么,我会发现的,都将不胜感激。多谢各位

这是我的密码:

public class LegendsSubmitActivity extends AppCompatActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_legends_submit);

    Button submit = (Button)findViewById(R.id.submit_btn);
    submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                SimpleFTP ftp = new SimpleFTP();

                // Connect to an FTP server on port 21.
                //real info is there in code
                ftp.connect("xx", 21, "xx", "xx");

                // Set binary mode.
                ftp.bin();

                // Change to a new working directory on the FTP server.
                ftp.cwd("home/upload/");

                // Upload some files.
                ftp.stor(new File(Environment.getExternalStorageDirectory().getPath() + "/Car/" + "EstimateFiles.zip"));
                //ftp.stor(new File("comicbot-latest.png"));

                // You can also upload from an InputStream, e.g.
                //ftp.stor(new FileInputStream(new File("test.png")), "test.png");
                // ftp.stor(someSocket.getInputStream(), "blah.dat");

                // Quit from the FTP server.
                ftp.disconnect();
            } catch (IOException e) {
                // Jibble.
                System.err.println("You done effed up" + e.getMessage());
            }


        }
    });

 }
}
这是一份日志:

10-13 10:59:38.521 28069-28069/com.gabeogan.damageestimator D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator D/AndroidRuntime: Shutting down VM
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime: FATAL EXCEPTION: main
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime: Process: com.gabeogan.damageestimator, PID: 28069
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime: android.os.NetworkOnMainThreadException
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:110)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at libcore.io.IoBridge.connect(IoBridge.java:122)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.net.Socket.startupSocket(Socket.java:590)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.net.Socket.tryAllAddresses(Socket.java:128)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.net.Socket.<init>(Socket.java:178)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.net.Socket.<init>(Socket.java:150)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at org.jibble.simpleftp.SimpleFTP.connect(SimpleFTP.java:68)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at com.gabeogan.damageestimator.LegendsSubmitActivity$1.onClick(LegendsSubmitActivity.java:34)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.view.View.performClick(View.java:5254)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:21179)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:145)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:6837)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
10-13 10:59:38.521 28069-28069/com.gabeogan.damageestimator D/ViewRootImpl:viewPostimeiInputStage动作
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator D/AndroidRuntime:关闭虚拟机
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:致命异常:main
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:Process:com.gabeogan.damageestimator,PID:28069
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:android.os.NetworkOnMainThreadException
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:110)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at libcore.io.IoBridge.connecterNo(IoBridge.java:137)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at libcore.io.IoBridge.connect(IoBridge.java:122)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:163)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.net.Socket.startupSocket(Socket.java:590)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.net.Socket.tryalladdress(Socket.java:128)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.net.Socket.(Socket.java:178)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.net.Socket.(Socket.java:150)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:org.jibble.simpleftp.simpleftp.connect(simpleftp.java:68)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:com.gabeogan.damageestimator.legendsubmitactivity$1.onClick(legendsubmitactivity.java:34)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at android.view.view.performClick(view.java:5254)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at android.view.view$PerformClick.run(view.java:21179)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at-android.os.handle.handleCallback(Handler.java:739)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at android.os.Handler.dispatchMessage(Handler.java:95)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at android.os.Looper.loop(Looper.java:145)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:android.app.ActivityThread.main(ActivityThread.java:6837)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.lang.reflect.Method.invoke(本机方法)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:at java.lang.reflect.Method.invoke(Method.java:372)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
10-13 10:59:38.581 28069-28069/com.gabeogan.damageestimator E/AndroidRuntime:com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
与处理UI(用户界面)的单个线程现在被阻止等待网络结果(例如,该线程可能会失败)相关

设备中不允许此行为,然后关闭程序以允许用户继续使用设备

检查以作为处理问题的一种方法。

与处理UI(用户界面)的单个线程现在被阻止等待网络结果这一事实有关(例如,该线程可能会失败)

设备中不允许此行为,然后关闭程序以允许用户继续使用设备


检查以作为处理此问题的一种方法。

NetworkOnMainThreadException明确表示您正在主线程内执行网络操作。长时间操作时,不要触摸主螺纹。此外,您还可以在onCreate方法中编写代码,这是首次创建“活动”时使用的方法。@BhavdipPathar谢谢,这为我澄清了这一点。NetworkOnMainThreadException明确表示您正在主线程内执行网络操作。长时间操作时,不要触摸主螺纹。此外,您还可以在onCreate方法中编写代码,这是首次创建活动的内容。@BhavdipPathar谢谢,这为我澄清了这一点。