应用程序无法在Android 4.1上运行

时间:2012-11-01 09:51:38

标签: android android-layout android-emulator

大家好我拥有适用于其他平台(1.6+以上)的示例应用程序但是同样的应用程序无法在我的新Android 4.1模拟器上运行。问题是关于HttpConnection。意味着我想要登录然后我无法做到这一点。代码没有问题,因为它适用于所有其他AVD(1.6,2.1,2.2)。

我也尝试使用简单的httpconnection代码,但仍然无效。

有任何特殊设置需要在4.1模拟器上运行互联网。但在我之前的平台上,我没有做任何设置。

我的HttpConnection代码如下:

public String httpGetResponse(String url) {
    connectionUrl = url;
    query_string="";
    String response = null;
    try {
        int loc = url.indexOf('?');
        if(loc>-1){
            try {
                query_string=url.substring(loc);
            } catch (Exception e) {
                query_string="";
            }
        }
        processGetRequest();
        HttpResponse httpresponse = httpclient.execute(host, get);
        response = EntityUtils.toString(httpresponse.getEntity());
    } catch (Exception e) {
        response = null;
    }
    return response;
}

我将此方法称为:

response = connectionUtil.httpGetResponse("My URL");

在所有其他平台上,我得到了作为String的响应,但是在4.1中我得到了响应:

response:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org          /TR/html4/loose.dtd"><HTML><HEAD><META HTTP-EQUIV="Content-Type"    CONTENT="text/html; charset=iso-    8859-1"><TITLE>ERROR: The requested URL could not be retrieved</TITLE>

     ..........

任何建议都将在此先感谢。

1 个答案:

答案 0 :(得分:2)

这个问题有两个解决方案。

1)不要在主UI线程中编写网络调用,为此使用异步任务。

2)在setContentView(R.layout.activity_main)之后将下面的代码写入MainActivity文件;

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}

将import语句放到你的java文件中。

import android.os.StrictMode;