美文网首页我爱编程
Android 6.0 Marshmallow(棉花糖)将Apa

Android 6.0 Marshmallow(棉花糖)将Apa

作者: lnfg | 来源:发表于2016-02-23 23:59 被阅读346次

    Google官方在API级别22的时候已经弃用HttpClient,在API级别23,更是将Apache HTTP Client给剔除了。

    来看看官方的解释:

       官方资料

    大概的意思是:Android的6.0版本中删除了的Apache HTTP客户端支持。如果您的应用程序使用此客户端和目标的Andr​​oid 2.3(API等级9)或更高,使用HttpURLConnection类代替。此API是更有效的,因为它减少了通过透明压缩和响应缓存网络的使用,并减少功耗。要继续使用的Apache HTTP API,您必须在您的build.gradle文件中添加下面的一句话:

    android{

    useLibrary 'org.apache.http.legacy'

    }


    以下是本人迁移项目到AS使用Apache HTTP Client遇到的问题及解决方法:


    Android Studio(以下均称AS)已越来越多人用了,已成为Android开发者的首选开发工具,Google在2015年也宣布AS将取代Eclipse(以下均称EC);

    基于以上原因,本人需要将在EC中写的项目迁移到AS上来,本人已经将AS升级到了2.0;EC中的项目想导入AS中,其实也很简单,我们看图说话,这样简单明了

    图-1

    点击 图-1  箭头上的项,导入你在EC中的项目.然后一步一步点击下去直到Finish就好了,它自己会帮你构建;


    本人将EC中的项目导入AS中,也会有一些小错误,在AS中的代码是非常严格的  比如.9图(我们称之为"九妹"),有些九妹并不是真的九妹,AS是可以检测的出来的,只要把你错的九妹改成真正的九妹就不会报错了;不多说了;

    本人的EC项目中使用了Apache的Http API,导入AS中报错了,看图

    图-2

    解决方法:

    一、在Android官方的解决办法是

    1.在你的build.gradle中添加

    android{

    useLibrary 'org.apache.http.legacy'

    }

    2.同步你的项目(这个使用AS的大神们应该懂的吧,就不说了).

    我们就实践一下看看有木有效果:

    a.添加 useLibrary 'org.apache.http.legacy'

     图-3

    b.同步项目

     图-4

    c.在报错的地方引入包Apache的包

     图-5

    在图-5中我们看见是可以引入包的,但是我们看见的是划了一条横线,这表明在Android 6.0中已过时.提示过时就过时吧,将就用吧。

    二、解决Apache包不存在的方法二

    1.在build.grade中添加

    dependencies{

    compile'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'

    }

    2.同步项目

    在看看效果:

    a.

     图-6

    b.同步项目

    c.看效果

     图-7

    看,这次我们发现没有划横线了;

    其实哪种方法都可以的,


    还是建议Android开发者使用OkHttp或者URLConnection代替Apache http;


    又到二十四点了,又是一天,记录工作中的点点滴滴。祝各位晚安,做个好梦!

    E

    相关文章

      网友评论

        本文标题:Android 6.0 Marshmallow(棉花糖)将Apa

        本文链接:https://www.haomeiwen.com/subject/kktikttx.html