Не удается разрешить символ NameValuePair

В моем проекте я получил сообщение об ошибке:

Ошибка получения родительского элемента: не найден ресурс, соответствующий имя 'android: TextAppearance.Material.Widget.Button.Inverse'.

Затем я попытался исправить это:

compileSdkVersion 23

Но потом я получил ошибку:

не может разрешить символ NameValuePair android

Как исправить эту ошибку?

Ответы

Ответ 1

NameValuePair является частью пакета org.apache, который был устаревшим с помощью Android 22 и удален с помощью Android M, который представляет собой версию, которую вы компилируете. Интересно, что ни документация NameValuePair не доступна

Ответ 2

Если вы хотите использовать NameValuePair или BasicNameValuePair в студии Android с последними уровнями API. Затем выполните следующие шаги:

  • Откройте файл build.gradle(Module) и скопируйте эти зависимости:

    compile 'com.google.http-client:google-http-client-android:+'
    
    compile 'com.google.api-client:google-api-client-android:+'
    
    compile 'com.google.api-client:google-api-client-gson:+'
    
  • Скопируйте useLibrary 'org.apache.http.legacy' ниже buildToolsVersion как:

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

    Вот и все. Теперь просто синхронизируйте файл gradle.

Примечание.. В зависимостях я рекомендую использовать последнюю версию библиотек inst + символа.

Ответ 3

Сегодня у меня тоже была такая же проблема. Я решил с двумя изменениями в моем 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'

Мой последний файл 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'

        }

Ответ 4

добавить это:

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

в приложении build.gradle, на котором он будет создан.

Ответ 5

Я столкнулся с той же проблемой. Чтобы решить эту проблему, я использовал:

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

а также добавил

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'

к зависимостям app/ gradle. Надеюсь, что поможет

Ответ 6

Имела ту же проблему

Решил его следующим образом:

  • Добавьте это в зависимости:

группа компиляции: 'org.apache.httpcomponents', имя: 'httpclient-android', версия: '4.3.5.1'

  1. Добавьте это ниже targetSdkVersion в defaultConfig

useLibrary 'org.apache.http.legacy'

Ответ 7

Вложенный класс будет работать:

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;
        }
    };