应用程序在android 2.3.7中工作正常而在4.1.2中没有

时间:2013-04-05 10:19:06

标签: android jar android-version

我有一个在Android 2.3.4,2.3.6和2.3.7中运行良好的应用程序,但它在android 4.1.2或4.2.2中没有(我没有更多的设备)

应用程序调用一个返回结果的jar文件,当我在2.3.7中测试应用程序时,我调用jar并获取结果但是当我用android 4.1.2执行它时强制关闭。这很奇怪,因为唯一的区别是操作系统,因为应用程序是相同的。

jar文件调用了互联网,我不认为这可能是错误

再次感谢大家!

2 个答案:

答案 0 :(得分:1)

  

jar文件打电话给互联网,我不认为这可能是   错误

=>对不起老兄问题就在这里,因为你说你的应用程序在< 2.3版本但不在> 2.3中,此失败背后的原因是 NetworkOnMainThreadException

现在,为什么在> 2.3版本设备中运行应用时会出现此异常?

=>只要应用程序尝试在其主线程上执行网络操作,就会发生NetworkOnMainThreadException

解决方案:

以下是解决此问题的两种解决方案:

1)标准方法是通过实施AsyncTask来进行网络服务呼叫。

2)处理此问题的懒惰方式是检查:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

答案 1 :(得分:0)

从Android版本4.0(ICS)开始,网络操作应该在AsynTask中运行。 在AsyncTask中运行代码:

private class Task extends AsyncTask<Void, Void, Void> {

    private Exception exception;

    @Override
    protected Void doInBackground(Void... urls) { 
        /// run your network operations here     
        return null;         
    }

    @Override
    protected void onPostExecute(RSSFeed feed) {

   }     
}

 new Task ().execute();