如何编译2.3到4.0的项目?

时间:2012-06-06 03:38:48

标签: android-4.0-ice-cream-sandwich android-2.3-gingerbread

最近,我被要求为新的4.0版本编译一些基于2.3的Android项目。因此,在没有太多关于如何做到这一点的知识的情况下,我只是尝试通过在清单文件中进行一些更改来实现,例如min SDKtargeted SDK。我将min SDK设置为 10 ,将targeted SDK设置为 15 。希望这会以某种方式工作,我测试运行我的代码只是为了看到它没有按照我希望的方式工作。当然,它在2.3上都很有效,无论是在模拟器还是设备上。

有没有办法升级/转换此项目以使用最新版本进行编译和构建,以便重做它?有人可以帮忙吗?

编辑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中出现弃用或其他问题吗?

1 个答案:

答案 0 :(得分:1)

最有可能的原因是在主线程上执行网络操作。

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

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