Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android org.apache.http.NameValuePair不再适用于CompileSDK版本23_Android_Apache - Fatal编程技术网

Android org.apache.http.NameValuePair不再适用于CompileSDK版本23

Android org.apache.http.NameValuePair不再适用于CompileSDK版本23,android,apache,Android,Apache,我有一个请求函数的助手类,我使用的一个方法如下 private String buildQueryString(String url, List<NameValuePair> params) throws IOException { StringBuilder sb = new StringBuilder(); if (params == null) return url; for (NameValuePair param : params) {

我有一个请求函数的助手类,我使用的一个方法如下

private String buildQueryString(String url, List<NameValuePair> params) throws IOException {
    StringBuilder sb = new StringBuilder();
    if (params == null) return url;

    for (NameValuePair param : params) {
        sb.append(urlEncode(param.getName()));
        sb.append("=");
        sb.append(urlEncode(param.getValue()));
        sb.append("&");
    }

    return url + "?" + sb.substring(0, sb.length() - 1);
}
私有字符串buildQueryString(字符串url,列表参数)引发IOException{
StringBuilder sb=新的StringBuilder();
if(params==null)返回url;
for(NameValuePair参数:params){
sb.append(urlEncode(param.getName());
某人加上(“=”);
sb.append(urlEncode(param.getValue());
某人附加(“&”);
}
返回url+“?”+sb.子字符串(0,sb.length()-1);
}
如果我将gradle更新为compileSdkVersion 23,则import org.apache.http.NameValuePair将不再存在。我很想知道替代品是什么?提前谢谢

编辑-发布gradle-另外,我使用的是gradle-2.4

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        maven { url 'https://zendesk.artifactoryonline.com/zendesk/repo' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

android {
    signingConfigs {
        debug {
            storeFile file('keystore/debug/debug.keystore')
        }
    }

    compileSdkVersion 23
    buildToolsVersion "21.1.2"
    useLibrary 'org.apache.http.legacy'

    // jenkins setup
    def versionPropsFile = file('version.properties')
    def code = 1;
    if (versionPropsFile.canRead() && versionPropsFile.exists()) {
        def Properties versionProps = new Properties()

        versionProps.load(new FileInputStream(versionPropsFile))
        List<String> runTasks = gradle.startParameter.getTaskNames();
        def value = 0
        for (String item : runTasks) {
            if (item.contains("assembleRelease")) {
                value = 1;
            }
        }
        code = Integer.parseInt(versionProps['VERSION_CODE']).intValue() + value
        versionProps['VERSION_CODE'] = code.toString()
        versionProps.store(versionPropsFile.newWriter(), null)
    } else {
        throw new GradleException("Could not read version.properties!")
    }

    // construct version name
    def versionMajor = 2
    def versionMinor = 3
    def versionPatch = 9

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 22
        versionName "${versionMajor}.${versionMinor}.${versionPatch}"
        versionCode code
        signingConfig signingConfigs.debug

        // enabling multidex support
        multiDexEnabled true
    }

    buildTypes {
        stage {
              <content removed>
        }
        debug {
              <content removed>
        }
        release {
              <content removed>
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
    }


dependencies {
    <bunch of dependencies>
    compile 'com.android.support:support-v4:23.0.1'
}
buildscript{
存储库{
maven{url'https://maven.fabric.io/public' }
maven{url'https://zendesk.artifactoryonline.com/zendesk/repo' }
}
依赖关系{
类路径'io.fabric.tools:gradle:1.+'
}
}
应用插件:“com.android.application”
应用插件:“io.fabric”
存储库{
maven{url'https://maven.fabric.io/public' }
}
安卓{
签名配置{
调试{
storeFile文件('keystore/debug/debug.keystore')
}
}
编译DK23版
BuildTools版本“21.1.2”
useLibrary'org.apache.http.legacy'
//詹金斯装置
def versionPropsFile=文件('version.properties')
def代码=1;
if(versionPropsFile.canRead()&&versionPropsFile.exists()){
def Properties versionProps=新属性()
加载(新文件输入流(versionPropsFile))
List runTasks=gradle.startParameter.getTaskNames();
def值=0
用于(字符串项:runTasks){
if(item.contains(“assembleRelease”)){
数值=1;
}
}
code=Integer.parseInt(versionProps['VERSION\u code']).intValue()+value
versionProps['VERSION_CODE']=CODE.toString()
versionProps.store(versionPropsFile.newWriter(),null)
}否则{
抛出新的GradleException(“无法读取version.properties!”)
}
//构造版本名
def versionMajor=2
def versionMinor=3
def版本补丁=9
默认配置{
明斯克版本16
targetSdkVersion 22
versionName“${versionMajor}.${versionMinor}.${versionPatch}”
版本代码
signingConfig signingConfigs.debug
//启用多索引支持
多索引启用真
}
建筑类型{
舞台{
}
调试{
}
释放{
}
}
包装选项{
排除“META-INF/LICENSE.txt”
}
依赖关系{
编译'com.android.support:support-v4:23.0.1'
}

将此添加到build.gradle中

android {
    useLibrary 'org.apache.http.legacy'
}
buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}
...
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    useLibrary 'org.apache.http.legacy'
    ...
}
org.apache库在api 22中被弃用,在api 23中被删除

buildToolsVersion'23.0.1'更改
buildToolsVersion'21.1.2'

或者,您应该在依赖项中添加以下内容:

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

要小心使用Gradle 1.3.+

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

对于API 23:

顶级build.gradle-/build.gradle

android {
    useLibrary 'org.apache.http.legacy'
}
buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}
...
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    useLibrary 'org.apache.http.legacy'
    ...
}
特定于模块的build.gradle-/app/build.gradle

android {
    useLibrary 'org.apache.http.legacy'
}
buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}
...
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    useLibrary 'org.apache.http.legacy'
    ...
}
官方文件:

最新android gradle插件更改日志:

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

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

添加到android中会导致一个错误,“找不到Gradle DSL方法:'useLibrary()”。请发布完整的Gradle文件您需要更改buildToolsVersion“21.1.2”“使用buildToolsVersion'23.0.1'解决了这个问题!有两种方法,你是对的,但我通过添加compile'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.客户端:4.1.2'lol,我们有相同的想法。我刚刚用编辑更新了我的答案。谢谢你的帮助。”。