android里面通过scp上传文件
我网上搜索了到使用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上传文件相关推荐
- scp 上传文件到服务器
scp 上传文件到服务器 scp命令 scp 本地路径 服务器路径 如 scp /Users/***/Desktop/text.zip root@****:/opt/ 本来是想通过"scp ...
- python2.7通过scp上传文件到指定服务器
1 说明 实现功能: 扫描指定文件目录下文件,通过scp上传到指定服务器目录下 程序结构简单说明: 包含两个线程,线程一:扫描文件线程:线程二:消费文件线程: 线程一:扫描指定文件目录下文件,把符合要 ...
- Android(安卓)上传文件到阿里云点播,阿里云点播转码
Android(安卓)上传文件到阿里云点播,阿里云点播转码 文章目录 Android(安卓)上传文件到阿里云点播,阿里云点播转码 一:登录阿里云点播平台配置添加转码模板组 1:需要什么参数,可自行填写 ...
- 连接腾讯云服务器操作+SCP上传文件
1.连接腾讯云服务器 linux打开终端(windows打开cmd) ssh -i "<下载的与云服务器关联的私钥的绝对路径>" <username>@&l ...
- Android开发文件上传格式,(android开发)使用okhttp上传文件
开发android手机客户端,常常会需要上传文件到服务器,比如:你手机里的照片. 使用okhttp会是一个很好的选择.它使用很简单,而且运行效率也很高. 首先,在 app/build.gradle 的 ...
- mac SCp上传文件到阿里云服务器centos
1.mac链接远程阿里云服务器centos命令: ssh -A -p 22 root@ip 2.mac上传文件到阿里云centos: 3.阿里云服务器weapps下文件删除命令: 4.上传文件相关 m ...
- 使用scp上传文件到服务器或从服务器下载文件(支持跨越跳板机)
转载 原文链接 原贴写的很好,我转载懒得排版了 scp是什么? 使用man scp可以看到scp的解释『scp - secure copy (remote file copy program)』,sc ...
- ANDROID以流形式上传文件
转自CarrotRol博客园博客 import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutpu ...
- java scp 上传文件_java基于Scp实现Linux下远程获取、上传文件
前不久在项目开发中遇上的一个需求:需要在B机器上将A机器某路径下的文件拷贝到B机器上做保存. 简单分析下来,自己的理解就是:一个RPC,主要就是解决跨域传输文件的问题.在提前能拿到A机器的IP.Por ...
最新文章
- c#创建、保存excel正常执行要点补疑
- Ubuntu和Linux的区别
- Redux专题:实用
- Google Map API 的基础使用
- 深究angularJS——(上传)FileUploader中文翻译
- android webView加载网络视频
- 集合的定义与并查操作(C语言)
- 从「及格线」到优等生,威马只用一台W6
- 树莓派该文件名_树莓派的20个常用命令
- Jmeter高阶学习,运用NotePad++编写工程,随意复制多个工程到同一个工程
- 8000401a 错误 及解决办法
- java嵌入chrome内核
- 谷歌seo外链Backlinks研究工具推荐
- 关于android各平台上架心得
- android里面的Activity体系结构(3)_ActivityRecord和Activity状态变化分析说明
- 微软小娜国外服务器,国外主持人苹果siri和微软小娜测评对比
- 阿里云服务器 开放端口
- 我国关键信息基础设施安全保护白皮书
- 太赞了!华为工程师总结的Linux+K8S笔记,提供下载
- 阿翔编程学-WebService介绍及使用