web-dev-qa-db-ja.com

Apache HttpClient Android(Gradle)

この行をbuild.gradleに追加しました

compile group: 'org.Apache.httpcomponents' , name: 'httpclient-Android' , version: '4.3.5'

そして、コードでMultipartEntityBuilderを使用したいと思います。ただし、Android studioはライブラリをライブラリに追加しません。誰でもこれで私を助けることができますか?

52
Hirad Roshandel

ターゲット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'

別のものdont使用:

'org.Apache.httpcomponents:httpclient-Android:4.3.5.1'

その21 APIレベルを参照します。

127
Jinu

受け入れられた答えは私にはまったく正しくないようです。同じバージョンに依存できる場合に、異なるバージョンの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'
}
24
ok2c

これを依存関係に追加してみてください:

compile 'org.Apache.httpcomponents:httpclient:4.4-alpha1'

通常、ライブラリを使用する場合、Gradle依存関係行を検索する場合は、 Gradle Please を使用できます。

編集: this oneもチェックします。

7
Pavlos

他の誰も私のために働いた。説明したように、次の依存関係を追加する必要がありました here

compile group: 'cz.msebera.Android' , name: 'httpclient', version: '4.4.1.1'

aPI 23をターゲットにしていたからです。

Build.gradleファイルに以下を追加することで問題を解決しました

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

ただし、これはgradle 1.3.0-beta2以降を使用している場合にのみ機能するため、以前のバージョンを使用している場合は、これをbuildscriptの依存関係に追加する必要があります。

classpath 'com.Android.tools.build:gradle:1.3.0-beta2'
4
sumit mehra

私は何度も検索しましたが、このソリューションは魅力のように機能します::

    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'
    }
2
mohamed elagamy

働くGradleの依存関係

これを試して:

'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.Apache.http.client:4.1.2'をコンパイルします

0
Ketan Ramani

理由はわかりませんが、(今のところ) httpclient をコンパイルできますonlyとしてjarとしてlibsディレクトリにプロジェクト。 HttpCore は、次のようにmvnからインクルードされると正常に機能します。

dependencies {
      compile 'org.Apache.httpcomponents:httpcore:4.4.3'
}
0
Nikolay Hristov