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.client: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' }