org.apache.http.NameValuePair不再适用于compileSdkVersion 23

时间:2015-10-05 22:18:35

标签: android apache

我有一个帮助类来执行请求函数,我正在使用的一个方法如下。

<div class="row row-eq-height">
    {foreach item=inventoryItem from=$inventory}
        <div class="col-sm-1 col-md-3">
            <div class="thumbnail">
            {foreach key=key item=item from=$inventoryItem}
                {if $key == "icon_url"}
                    <img src="http://steamcommunity-a.akamaihd.net/economy/image/{$item}"  width="128" height="96">
                {/if}
                <div class="caption">
                {if $key == "name"}
                    <h3><center>{$item}</center></h3>
                {/if}
                {if $key == "price"}
                    <p><center>${$item}</center></p>
                {/if}
                </div>
            {/foreach}
            </div>
        </div>
    {/foreach}

</div>

如果我将gradle更新为compileSdkVersion 23,则导入org.apache.http.NameValuePair不再存在。我很想知道更换的是什么?提前谢谢!

EDIT -posting gradle-另外,我正在使用gradle-2.4

void printPaths()
    {
        string mypath = @"c:\\root\\1";
        string sql = ("select * from paths where pathdesc like @mypath");

        SQLiteCommand command = new SQLiteCommand(sql,m_dbConnection);
        command.Parameters.AddWithValue("@mypath", mypath+"%");

        SQLiteDataReader reader = command.ExecuteReader();
        while (reader.Read())
            Console.WriteLine("ID: " + reader["pathid"] + "\tpathdesc: " + reader["pathdesc"]);
        Console.ReadLine();
    }

2 个答案:

答案 0 :(得分:7)

在build.gradle上添加

android {
    useLibrary 'org.apache.http.legacy'
}

org.apache库已从api 22弃用,并在api 23上被删除。

使用buildToolsVersion '21.1.2'

更改buildToolsVersion '23.0.1'

或者你应该在依赖项上添加它:

compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.cli‌​ent:4.1.2'

小心使用Gradle 1.3。+

答案 1 :(得分:3)

要详细说明这个问题,有两种方法可以解决面临同一冲突的问题。正如@Michele指出的那样,可以使用useLibrary 'org.apache.http.legacy',但你必须记住也要更新gradle。

对于API 23:

顶级build.gradle - /build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}
...

特定于模块的build.gradle - /app/build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    useLibrary 'org.apache.http.legacy'
    ...
}

官方文件:
https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client

最新的android gradle插件更新日志:http://tools.android.com/tech-docs/new-build-system

解决此问题的第二种方法是将以下内容添加到依赖项

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