下面是我的一个通过Http下载文件的练习,问题是在没有为程序添加网络访问权限(ndroid.permission.INTERNET)的情况为什么报的是NullPointerException,而不是指定缺少某个权限呢?

public class FileDownload extends Activity {public URL url;TextView tView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);LinearLayout linearLayout = new LinearLayout(this);tView = new TextView(this);tView.setText("将要显示下载的网络数据");Button download = new Button(this);linearLayout.addView(download);linearLayout.addView(tView);setContentView(linearLayout);download.setText("开始下载文本文件");download.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {HttpDownloader hd = new HttpDownloader();//注意下面的192.168.1.106是我电脑此时的ip地址,如果使用的是动态ip,请在运行时确认修改,/myapp是我的web应用,WebData.txt是web应用根目录下的一个文本文件String webData = hd.download("http://192.168.1.106:8080/myapp/WebData.txt");  //此处报错,空指针异常tView.setText(webData);}});}class HttpDownloader {public String download(String urlStr){StringBuffer sb = new StringBuffer();String line = null;BufferedReader buffer = null;try {url = new URL(urlStr);HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));while((line = buffer.readLine()) != null) {sb.append(line);}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {buffer.close(); //此处报错,空指针异常} catch (IOException e) {e.printStackTrace();}}return sb.toString();}}}

报错:

03-27 07:58:43.210: E/AndroidRuntime(1303): Uncaught handler: thread main exiting due to uncaught exception
03-27 07:58:43.220: E/AndroidRuntime(1303): java.lang.NullPointerException
03-27 07:58:43.220: E/AndroidRuntime(1303): at com.wly.summary.mechanism.FileDownload$HttpDownloader.download(FileDownload.java:64)
03-27 07:58:43.220: E/AndroidRuntime(1303): at com.wly.summary.mechanism.FileDownload$1.onClick(FileDownload.java:39)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.view.View.performClick(View.java:2364)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.view.View.onTouchEvent(View.java:4179)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.widget.TextView.onTouchEvent(TextView.java:6541)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.view.View.dispatchTouchEvent(View.java:3709)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-27 07:58:43.220: E/AndroidRuntime(1303): at android.view.ViewGroup.dispatchTouch.......

由错误信息可以报的是空指针异常,为什么不是缺少权限异常的描述呢?

更多相关文章

  1. java获取http:图片下载代码――android基础编
  2. greenDAO的简单使用(一)
  3. 下载google play apk的方法
  4. Eclipse中如何关联android sdk源码
  5. android源码下载-Windwos下使用清华镜像
  6. Ubuntu 16.04 64bit 编译 Android(安卓)4.4 源码
  7. Android(安卓)Studio和SDK的下载安装以及个性化设置方法
  8. Android(安卓)Studio 使用过程中的坑
  9. Mac OS X下编译Android源码

随机推荐

  1. michael / afinal
  2. android休眠
  3. Android中ImageView.ScaleType中文释义
  4. android:largeHeap属性
  5. Android动画开发——Animation动画效果 .
  6. Android 使用View类绘图
  7. 更好用的Android Toast
  8. android 地图 infoWindow的每个控件添加
  9. android studio 添加Butterknife 插件
  10. android摄像头调用资料收集