最近在学习Mars老师的Android开发课程,仿照http://www.cnblogs.com/Laupaul/archive/2012/02/12/2348293.html的代码来写应用,结果中间出了各种各样的问题,在这里总结一下:

1. java.lang.NullPointerException报错,android.os.NetworkOnMainThreadException异常

原因:urlCon.getInputStream()执行的时候出错导致,得不到InputStream。这个异常大概意思是在主线程访问网络时出的异常。 造成这样的错误原因是代码不符合Android规范,Android在4.0之前的版本支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中了。

解决办法:

改用多线程,异步加载的方式:

    String lrc;Handler handler = new Handler() {public void handleMessage(Message msg) {if(msg.what == 0x123) {System.out.println(lrc);}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_download);downloadTxtButton = (Button)findViewById(R.id.downloadTxt);downloadMp3Button = (Button)findViewById(R.id.downloadMp3);textview = (TextView)findViewById(R.id.textview);downloadTxtButton.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {new Thread() {public void run() {HttpDownloader httpDownloader = new HttpDownloader();lrc = httpDownloader.download("http://127.0.0.1/android_download/white_black.lrc");handler.sendEmptyMessage(0x123);textview.setText(lrc);}}.start();}});}

2. android从tomcat读取文件出错:connect failed: ECONNREFUSED

本地启tomcat,当想让android从本地服务器上下载文件时,url中IP地址写127.0.0.1或localhost在模拟器中无效:

W/System.err(12527): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 8080): connect failed: ECONNREFUSED (Connection refused)

改为本机的IP地址也显示无法连接,终于在网上找到一个非常简便的方式:android把127.0.0.1当作模拟器本机,而把计算机本地IP设为10.0.2.2,所以只需要把需连接本地计算机web服务地址改为:http://10.0.2.2即可。

3.Only the original thread that created a view hierarchy can touch its views报错

Android的相关View和控件不是线程安全的,从报错信息可以得知只能由产生View的线程对它做改变,因此将textview.setText(lrc);放到handleMessage()里即可。

4. 写文件到SD卡时出错:java.io.IOException: open failed: EACCES (Permission denied)

Manifest里也配置了权限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

原因是模拟器的SD卡大小没有设置,在AVD Manager里将模拟器的SD卡size设置一下,再跑就没问题了。

经过一番折腾,终于出了结果:

目前还是新手,所以出了问题就各种不知所措,经验还是需要慢慢积累的~

Android下载文件常见错误解决方法相关推荐

  1. jack server 常见错误解决方法

    jack 服务常见错误解决方法 当你编译Android时,你不需要修改任何内容. Jack是Andriod M的默认编译工具.只需使用标准的makefile命令执行即可.当第一次执行jack时,它会在 ...

  2. jack 服务常见错误解决方法

    jack 服务常见错误解决方法 当你编译Android时,你不需要修改任何内容. Jack是Andriod M的默认编译工具.只需使用标准的makefile命令执行即可.当第一次执行jack时,它会在 ...

  3. jack server 常见错误解决方法【转】

    本文转载自:https://blog.csdn.net/qq_27061049/article/details/70156200 jack 服务常见错误解决方法 当你编译Android时,你不需要修改 ...

  4. Android布局文件错误,android 布局文件常见错误

    1.'Missing contentDescription attribute on image' in XML 原因:缺少图片描述,在 ADT 16 开始会抛出这个警告,确保开发者为图片添加内容描述 ...

  5. The import android cannot be resolved”错误解决方法

    导入工程的"The import android cannot be resolved"错误解决方法 2012-03-02 | 阅:  转:  |  分享 通过eclipse的im ...

  6. web常见错误解决方法

    web常见错误解决方法 Http状态码: 分类 分类描述 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3** 重定向,需要进一步的操作以完成请求 4** ...

  7. Java003-HelloWorld程序及其常见错误解决方法

    Java003-HelloWorld程序及其常见错误解决方法 一.HelloWorld程序 一个正确的HelloWorld程序.可以复制该段代码来检验自己写的代码是否正确(ps:修改类名HelloWo ...

  8. 普元EOS开发积累第一篇(常见错误解决方法) 持续更新

    普元EOS开发积累第一篇(常见错误解决方法) 持续更新 参考文章: (1)普元EOS开发积累第一篇(常见错误解决方法) 持续更新 (2)https://www.cnblogs.com/tangjing ...

  9. Spark程序运行常见错误解决方法以及优化

    Spark程序运行常见错误解决方法以及优化 参考文章: (1)Spark程序运行常见错误解决方法以及优化 (2)https://www.cnblogs.com/double-kill/p/901238 ...

  10. nginx配置与常见错误解决方法

    nginx配置与常见错误解决方法 参考文章: (1)nginx配置与常见错误解决方法 (2)https://www.cnblogs.com/lechie/archive/2011/11/12/2383 ...

最新文章

  1. python使用正则表达式检测给定的URL地址是否合法
  2. 第五百七十二、三天 how can I 坚持
  3. 修改android4.0的鼠标箭头图标(方法)
  4. 网络相关的一些基本的命令的使用(ping、ifconfig、route、netstat)---Linux学习笔记
  5. OSG与opengl的shader结合
  6. 学校如何搭建文件服务器,学校服务器搭建
  7. 微型计算机原理与接口电子教案,《微型计算机原理与接口技术》电子教案研讨.ppt...
  8. 8月23号,来上海整整一年
  9. 续《用最简单的例子实现jQuery图片即时上传》之多图上传实现
  10. php获取ip所有方式,php获取用户(客户端)真实IP地址的三种方法
  11. python界面设计实例qt_Python GUI教程(六):使用Qt设计师进行窗口布局
  12. java中引用数据类型有哪些?
  13. 《编码:隐匿在计算机软硬件背后的语言》一书勘误
  14. 编辑Internet
  15. Flink CheckPoint : Exceeded checkpoint tolerable failure threshold
  16. 从零搭建Spring Boot脚手架(2):增加通用的功能
  17. Paddleocr部署进一步优化
  18. 读取excel表格内容,并写入到word文档中
  19. java照片水印怎么做的_java图片加水印_百度经验
  20. 计算机c盘能备份数据吗,怎么备份C盘数据

热门文章

  1. PHPEclipse安装与使用
  2. 博弈论笔记:动态博弈
  3. 初中计算机期末质量分析,初中信息技术教学感悟随笔
  4. luarocks安装
  5. Matlab 三角函数输入
  6. 红linux系统,红帽子linux系统
  7. 23hh小说网——爬虫0.1python
  8. matlab时频工具箱简介,matlab时频分析工具箱下载_matlab时频分析工具箱官方下载-太平洋下载中心...
  9. 大数据专业认知实习作业
  10. 浅谈人机工程应用在数字化工艺中的作用