Apache HttpClient Android (Gradle)
Я добавил эту строку в свой файл build.gradle
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5'
и я хочу использовать MultipartEntityBuilder в своем коде. Однако студия Android не добавляет библиотеку в мой код.
Может ли кто-нибудь помочь мне с этим?
Ответы
Ответ 1
если вы используете целевой sdk как 23, добавьте ниже код в свой build.gradle
android{
useLibrary 'org.apache.http.legacy'
}
дополнительная заметка здесь: не пытайтесь использовать версии этих файлов gradle. они сломаны (28.08.15). Я попробовал более 5 часов, чтобы заставить его работать. это просто не делает.
не работает:
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
другая вещь не:
'org.apache.httpcomponents:httpclient-android:4.3.5.1'
, ссылаясь на уровень 21 api.
Ответ 2
Принятый ответ мне кажется не совсем правильным. Нет смысла перетаскивать другую версию HttpMime, когда можно зависеть от той же самой версии.
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5'
compile (group: 'org.apache.httpcomponents' , name: 'httpmime' , version: '4.3.5') {
exclude module: 'org.apache.httpcomponents:httpclient'
}
Ответ 3
Попробуйте добавить это к своим зависимостям:
compile 'org.apache.httpcomponents:httpclient:4.4-alpha1'
И вообще, если вы хотите использовать библиотеку, и вы ищете строку зависимости Gradle, вы можете использовать Gradle Пожалуйста
EDIT: проверьте этот тоже.
Ответ 4
Никто из других не работал у меня. Мне пришлось добавить следующую зависимость, как описано здесь
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1'
потому что я нацелился на API 23.
Ответ 5
Я решил проблему, добавив следующее в файл build.gradle
android {
useLibrary 'org.apache.http.legacy'}
Однако это работает только в том случае, если вы используете gradle 1.3.0-beta2 или выше, поэтому вам придется добавить это к зависимостям buildscript, если вы находитесь в более низкой версии:
classpath 'com.android.tools.build:gradle:1.3.0-beta2'
Ответ 6
Я не знаю, почему, но (пока) httpclient может быть скомпилирован только как банку в каталог libs в вашем проекте.
HttpCore отлично работает, когда он включен из mvn следующим образом:
dependencies {
compile 'org.apache.httpcomponents:httpcore:4.4.3'
}
Ответ 7
Работа с зависимостью gradle
Попробуйте следующее:
compile 'org.jbundle.util.osgi.wrapped: org.jbundle.util.osgi.wrapped.org.apache.http.client: 4.1.2'
Ответ 8
Я искал снова и снова, это решение работает как шарм::
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.anzma.memories"
useLibrary 'org.apache.http.legacy'
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('org.apache.httpcomponents:httpmime:4.3.6') {
exclude module: 'httpclient'
}
compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
}