org.apache.http.NameValuePair n’est plus disponible avec comstackSdkVersion 23

J’ai une classe d’assistance qui demande des fonctions, et l’une des méthodes que j’utilise est la suivante.

private Ssortingng buildQuerySsortingng(Ssortingng url, List params) throws IOException { SsortingngBuilder sb = new SsortingngBuilder(); 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.subssortingng(0, sb.length() - 1); } 

Si je mets à jour ma gradle à comstackSdkVersion 23, import org.apache.http.NameValuePair n’existe plus. J’étais curieux de savoir ce que le remplacement est? Merci d’avance!

EDIT -posting gradle- J’utilise aussi 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') } } comstackSdkVersion 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 runTasks = gradle.startParameter.getTaskNames(); def value = 0 for (Ssortingng item : runTasks) { if (item.contains("assembleRelease")) { value = 1; } } code = Integer.parseInt(versionProps['VERSION_CODE']).intValue() + value versionProps['VERSION_CODE'] = code.toSsortingng() 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 {  } debug {  } release {  } } packagingOptions { exclude 'META-INF/LICENSE.txt' } dependencies {  comstack 'com.android.support:support-v4:23.0.1' } 

Ajoutez ceci sur votre build.gradle

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

La bibliothèque org.apache est devenue obsolète depuis api 22 et a été éliminée sur api 23.

changez buildToolsVersion '21.1.2' avec buildToolsVersion '23.0.1'

Ou vous devriez append ceci sur vos dépendances:

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

Attention à utiliser le Gradle 1.3. +

Pour développer cette question, il existe deux manières de résoudre ce problème pour ceux qui sont confrontés au même conflit. Comme @Michele l’a souligné, useLibrary 'org.apache.http.legacy' peut être utilisé, mais vous devez vous rappeler de mettre également à jour gradle.

Pour API 23:

Niveau supérieur build.gradle – /build.gradle

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

Build.gradle spécifique au module – /app/build.gradle

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

Doc officiel:
https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client

Dernière version du plugin android gradle: http://tools.android.com/tech-docs/new-build-system

La deuxième façon de résoudre ce problème est d’append les éléments suivants aux dépendances

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