android - 应用程序不适用于 Android 4.1

标签 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) 不要在主 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;

关于android - 应用程序不适用于 Android 4.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13174537/

相关文章:

java - RecyclerView 没有附加适配器;跳过布局,数据不显示

android - 为什么android中xml的style属性没有命名空间

javascript - Jquery Mobile pagecontainershow 事件未在模拟器中触发,但在设备上?

Android Studio 虚拟设备卡在 G 屏幕上

Android Studio 改变了我的键盘按键

SimonVT menuDrawer 中出现 java.lang.NullPointerException?

java - fragment 不会在 main_activity() 中被替换

android - 无法在 Windows 代理后面的 Android 模拟器中连接互联网

java - 来自 Android Studio 的新 Activity 显示错误

Android Studio 无法启动 git,虽然实际上可以