web-dev-qa-db-fra.com

Impossible de résoudre le symbole NameValuePair

Dans mon projet, j'ai eu une erreur:

Erreur lors de la récupération du parent pour l'élément: Aucune ressource trouvée correspondant au nom donné 'Android: TextAppearance.Material.Widget.Button.Inverse'.

Ensuite, j'ai essayé de le réparer en utilisant ceci:

compileSdkVersion 23

Mais j'ai eu une erreur:

impossible de résoudre le symbole NameValuePair Android

Comment corriger cette erreur?

22
g8214435

NameValuePair fait partie du package org.Apache qui a été déconseillé avec Android 22 et supprimé avec Android M, qui est la version que vous compilez. Ce qui est intéressant, c'est que ni la documentation de NameValuePair n'est accessible

14
Blackbelt

Si vous souhaitez utiliser NameValuePair ou BasicNameValuePair dans Android studio avec les derniers niveaux d'API. Suivez ensuite les étapes ci-dessous:

  • Ouvrez le fichier build.gradle (Module) et copiez ces dépendances:

    implementation 'com.google.http-client:google-http-client-Android:+'
    
    implementation 'com.google.api-client:google-api-client-Android:+'
    
    implementation 'com.google.api-client:google-api-client-gson:+'
    
  • Copie useLibrary 'org.Apache.http.legacy' ci-dessous buildToolsVersion comme:

    Android {
    useLibrary 'org.Apache.http.legacy'}
    

C'est tout. Maintenant, synchronisez simplement le fichier gradle.

Remarque: Dans les dépendances, je recommande d'utiliser la dernière version des bibliothèques au lieu du symbole +.

31
Rahul Sharma

Aujourd'hui, j'ai aussi eu le même problème. J'ai résolu deux changements dans mon build.gradle

 1)   Android {
        useLibrary 'org.Apache.http.legacy'
              }

2)  compile 'org.Apache.httpcomponents:httpcore:4.4.1'
    compile 'org.Apache.httpcomponents:httpclient:4.5'

Mon dernier fichier build.gradle:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.corouter"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

Android {
    useLibrary 'org.Apache.http.legacy'
}
dependencies
        {
            compile fileTree(include: ['*.jar'], dir: 'libs')
            testCompile 'junit:junit:4.12'
            compile 'com.Android.support:appcompat-v7:23.2.0'
            compile 'com.Android.support:recyclerview-v7:23.0.+'
            compile 'org.Apache.httpcomponents:httpcore:4.4.1'
            compile 'org.Apache.httpcomponents:httpclient:4.5'

        }
10
Däñish Shärmà

ajoute ça:

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

dans build.gradle basé sur l'application, il le ramassera

4
test Android

La classe imbriquée fonctionnerait:

private class NameValuePair {
        private String mName;
        private String mValue;

        public NameValuePair(String name, String value) {
            mName = name;
            mValue = value;
        }

        public String getName() {
            return mName;
        }

        public String getValue() {
            return mValue;
        }
    };
3
Klim Letov

J'étais confronté au même problème. Pour le résoudre, j'ai utilisé:

import cz.msebera.Android.httpclient.NameValuePair;
import cz.msebera.Android.httpclient.message.BasicNameValuePair;

et a également ajouté

compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.1.1'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile "cz.msebera.Android:httpclient:4.4.1.1"
compile group: 'cz.msebera.Android' , name: 'httpclient', version: '4.4.1.1'

aux dépendances app/gradle. J'espère que ça aide

2
Byron Kats

A eu le même problème

Résolu comme suit:

  1. Ajoutez ceci dans les dépendances:

groupe de compilation: 'org.Apache.httpcomponents', nom: 'httpclient-Android', version: '4.3.5.1'

  1. Ajoutez ceci sous targetSdkVersion dans defaultConfig

seLibrary 'org.Apache.http.legacy'

0
Abhishek Jain