android缺少权限为什么报NullPointerException
??? 下面是我的一个通过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 楼 forever-liang 2012-05-13 或许是没权限,取不到实例,所以报空指针