2012-06-06 24 views
1

最近,我被要求编译一些基于2.3的Android项目,用于新的4.0版本。所以,在没有太多知识的情况下,我只是尝试通过在清单文件中进行一些更改,如min SDKtargeted SDK。我将min SDK设置为和targeted SDK至。希望这可以以某种方式工作,我测试运行我的代码只是为了看到它没有按照我希望的方式工作。当然,在模拟器和设备上它都能很好地工作。如何将项目从2.3编译为4.0?

有没有办法升级/转换这个项目来编译和使用最新版本的其他重做它?谁能帮忙?

编辑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中是否会出现弃用?

+0

Android应用程序通常是向前兼容的。你能描述出乎意料的行为吗? – bacchus

+0

我没有输出,我的一些静态'TextView'文本在运行时开始消失。这是我看到尽管应用程序运行5-10分钟希望它可能是由于互联网连接。 –

回答

1

很可能是因为在主线程上执行网络操作导致的。

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

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