我网上搜索了到使用ganymed-ssh2-build210.jar来实现scp上传文件功能。我就不说具体的方法了。有些网友比我还认真写文档,写的比我漂亮多了。

问题一:

使用的时候,我发现总是连不上,我查看了一下日志,发现这个错误:2022-03-23 15:27:08.583 8013-8013/? W/System.err: Caused by: java.net.SocketException: socket failed: EACCES (Permission denied)

我网上搜了一下,网友说这样解决:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tradingstrategy">

添加这一行
    <uses-permission android:name="android.permission.INTERNET"/>

<application
        //...
    </application>
</manifest>
果然,不会出现上面的错了。

问题二:

上面的问题解决后,运行一下,程序崩溃,出现下面的错误:

2022-03-23 16:56:03.380 14260-14260/com.tradingstrategy D/AndroidRuntime: Shutting down VM
2022-03-23 16:56:03.381 14260-14260/com.tradingstrategy E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.tradingstrategy, PID: 14260
    android.os.NetworkOnMainThreadException
        at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1450)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:355)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:357)
        at java.net.Socket.connect(Socket.java:616)
        at ch.ethz.ssh2.transport.TransportManager.establishConnection(TransportManager.java:340)
        at ch.ethz.ssh2.transport.TransportManager.initialize(TransportManager.java:448)
        at ch.ethz.ssh2.Connection.connect(Connection.java:643)
        at ch.ethz.ssh2.Connection.connect(Connection.java:490)
        at com.tradingstrategy.ui.utils.UtilsScp.connect(MyScp.java:49)
        at com.tradingstrategy.ui.update.UpdateFragment.onClick(MyFragment.java:71)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
以前出现这些错误,都是一直点,直接跳到崩溃的地方,然后修改一下代码就可以了。现在点到最后也就是文件StrictMode.java的builder.penaltyLog();怎么办呢?我还找一下其他错误的地方,然后在百度里面搜索。最后也没搜到有用的信息。搞了一个小时左右,我突然灵光一现,根据我之前的经验,最后一行就是最后错误所在的地方,我拷贝at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1450)这行,到百度里面搜一下,结果有答案了。网上这样说:

android.os.NetworkOnMainThreadException是说不要在主线程中访问网络,这个应该是android4.0版本开始就强制不能在主线程中访问网络,要把访问网络放在
独立的线程中。如果一定要忽略这些强制策略问题的话,可以在onCreate()方法里面加上
StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

我在我顶层Activity的onCreate()方法里面加上上面的代码。果然,不会崩溃了。

这样的坑都有啊,哎。还好,我这个多绝招的人还能勉强应付。

android里面通过scp上传文件相关推荐

  1. scp 上传文件到服务器

    scp 上传文件到服务器 scp命令 scp 本地路径 服务器路径 如 scp /Users/***/Desktop/text.zip root@****:/opt/ 本来是想通过"scp ...

  2. python2.7通过scp上传文件到指定服务器

    1 说明 实现功能: 扫描指定文件目录下文件,通过scp上传到指定服务器目录下 程序结构简单说明: 包含两个线程,线程一:扫描文件线程:线程二:消费文件线程: 线程一:扫描指定文件目录下文件,把符合要 ...

  3. Android(安卓)上传文件到阿里云点播,阿里云点播转码

    Android(安卓)上传文件到阿里云点播,阿里云点播转码 文章目录 Android(安卓)上传文件到阿里云点播,阿里云点播转码 一:登录阿里云点播平台配置添加转码模板组 1:需要什么参数,可自行填写 ...

  4. 连接腾讯云服务器操作+SCP上传文件

    1.连接腾讯云服务器 linux打开终端(windows打开cmd) ssh -i "<下载的与云服务器关联的私钥的绝对路径>" <username>@&l ...

  5. Android开发文件上传格式,(android开发)使用okhttp上传文件

    开发android手机客户端,常常会需要上传文件到服务器,比如:你手机里的照片. 使用okhttp会是一个很好的选择.它使用很简单,而且运行效率也很高. 首先,在 app/build.gradle 的 ...

  6. mac SCp上传文件到阿里云服务器centos

    1.mac链接远程阿里云服务器centos命令: ssh -A -p 22 root@ip 2.mac上传文件到阿里云centos: 3.阿里云服务器weapps下文件删除命令: 4.上传文件相关 m ...

  7. 使用scp上传文件到服务器或从服务器下载文件(支持跨越跳板机)

    转载 原文链接 原贴写的很好,我转载懒得排版了 scp是什么? 使用man scp可以看到scp的解释『scp - secure copy (remote file copy program)』,sc ...

  8. ANDROID以流形式上传文件

    转自CarrotRol博客园博客 import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutpu ...

  9. java scp 上传文件_java基于Scp实现Linux下远程获取、上传文件

    前不久在项目开发中遇上的一个需求:需要在B机器上将A机器某路径下的文件拷贝到B机器上做保存. 简单分析下来,自己的理解就是:一个RPC,主要就是解决跨域传输文件的问题.在提前能拿到A机器的IP.Por ...

最新文章

  1. c#创建、保存excel正常执行要点补疑
  2. Ubuntu和Linux的区别
  3. Redux专题:实用
  4. Google Map API 的基础使用
  5. 深究angularJS——(上传)FileUploader中文翻译
  6. android webView加载网络视频
  7. 集合的定义与并查操作(C语言)
  8. 从「及格线」到优等生,威马只用一台W6
  9. 树莓派该文件名_树莓派的20个常用命令
  10. Jmeter高阶学习,运用NotePad++编写工程,随意复制多个工程到同一个工程
  11. 8000401a 错误 及解决办法
  12. java嵌入chrome内核
  13. 谷歌seo外链Backlinks研究工具推荐
  14. 关于android各平台上架心得
  15. android里面的Activity体系结构(3)_ActivityRecord和Activity状态变化分析说明
  16. 微软小娜国外服务器,国外主持人苹果siri和微软小娜测评对比
  17. 阿里云服务器 开放端口
  18. 我国关键信息基础设施安全保护白皮书
  19. 太赞了!华为工程师总结的Linux+K8S笔记,提供下载
  20. 阿翔编程学-WebService介绍及使用

热门文章

  1. 聊聊强AI——来到治愈系空间的小茶末
  2. 专利代理机构代理专利流程
  3. LinkedList真的比ArrayList增删快吗?为什么?
  4. 毕业设计-基于微信小程序的图书馆咨询服务系统
  5. HTML5 列表、表格、常用表单、基本标签
  6. MSRA院长周礼栋升任微软全球资深副总裁,20年前加入微软,毕业于复旦
  7. 概率统计Python计算:F分布分位点计算
  8. 记一次网页打印小票、收据
  9. Matplotlib绘图笔记
  10. 我把3个镜头手机拍的照片发微信群,哥们说,现在手机摄像头越来越多,我有一个扫码就够了...