1

最近,我被要求为新的 4.0 版本编译一些基于 2.3 的 Android 项目。因此,在没有太多关于如何做的知识的情况下,我只是尝试通过在清单文件中进行一些更改来自己做,比如min SDKand targeted SDK。我将其设置min SDK1015。希望这会以某种方式起作用,我测试运行我的代码只是发现它没有按照我希望的方式运行。当然,它在 2.3 上运行得非常好,无论是在模拟器还是设备上。 targeted SDK

有没有办法升级/转换这个项目以使用最新版本编译和构建,而不是重做它?任何人都可以帮忙吗?

编辑 1: 经过数小时的故障排除和搜索在线线索。我决定更深入地研究一下。我发现这一行:

DefaultHttpClient client = new MyHttpClient(getApplicationContext());
HttpGet get = new HttpGet(url11);
HttpResponse getResponse = client.execute(get); // 4.0.3 crashes here.... 

是问题的原因。现在我从 2.3.3 和 4.0.3 运行 AVD Manager 来测试这个问题,结果证明这条线运行顺利,在 2.3.3 上没有错误。新的 4.0.3 中可能会有弃用或其他内容吗?

4

1 回答 1

1

很可能是由于在主线程上执行网络操作引起的。

当 AndroidManifest.xml 上的 targetSdkVersion 为 11 或更高时,它会导致NetworkOnMainThreadException 。

使用 AsyncTask 或 AsyncTaskLoader 将其移动到后台线程。

于 2012-06-07T08:59:27.540 回答