2016-05-04 3 views
0

In meinem Android Ich bin zu Upload eine Datei an einen Back-End-Server und dachte an sie mit HTTP-Post-Anfrage MultipartEntity mit zu tun. In diesem Fall habe ich zunächst httpcore und httpmime Bibliotheken hinzugefügt und es gab mir einen Fehler. so nach einigem googeln fand ich, dass httpclient-android auch importieren müssen. so endlich meine build.gradle Datei ist wie folgt aussieht.Android httpcore, httpmime und Httpclient-Android-Bibliotheken importieren givs einen Fehler

android { 
    compileSdkVersion 'Google Inc.:Google APIs:21' 
    buildToolsVersion '23.0.2' 
    defaultConfig { 
     applicationId "com.m.l" 
     minSdkVersion 14 
     targetSdkVersion 19 
     versionCode 69 
     versionName '2.0.15' 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
    productFlavors { 
    } 
    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' 
    } 
    dexOptions { 
     incremental true 
     javaMaxHeapSize "4g" 
    } 
} 

dependencies { 
    compile project(':holoColorPickermaster') 
    compile project(':qRCodeReaderViewlib') 
    compile project(':volley') 
    compile project(':library') 
    compile 'com.android.support:support-v4:22.2.1' 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile 'com.android.support:multidex:' 
    compile 'org.apache.httpcomponents:httpcore:4.4.4' 
    compile('org.apache.httpcomponents:httpmime:4.3.6') { 
     exclude module: 'httpclient' 
    } 
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5' 
} 

aber jetzt, wenn ich die app renne es mich mit verschiedenem error.my Fehlerprotokoll aufgefordert ist, wie unten,

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/http/concurrent/BasicFuture.class 

ich sehe für diesen Fehler in der Bahn und und versuche zu beheben es. aber habe keine richtige Lösung. festgestellt, dass dies eine Vervielfältigung von Dateien verursacht wurde. Wie kann ich das beheben? Danke und Grüße.

Antwort

0

Wenn Sie einige Quellen haben, die nicht kompiliert werden sollen, müssen Sie einen Filter für die Quellen deklarieren, nicht für die Klassendateien, die in den Jar eingegeben werden. Etwas wie:

sourceSets { 
    main { 
     java { 
      include 'com/ourcompany/somepackage/activityadapter/**' 
      include 'com/ourcompany/someotherpackage/**' 
      exclude 'com/ourcompany/someotherpackage/polling/**' 
     } 
    } 
} 

Diese Lösung ist gültig, wenn Sie diese Pakete kompilieren möchte nicht, dass, aber wenn Sie sie kompilieren wollen und verstehen sich inklusive von Ihrem JAR könnten Sie

jar { 
    exclude('mi/package/excluded/**') 
    exclude('mi/package/excluded2/**') 
} 
+0

Dank für die schnelle Antworten. In meinem Fall heißt es "doppelte Eingabe: org/apache/http/concurrent/BasicFuture.class" im Fehler. Wie finde ich heraus, was ausgeschlossen werden soll, soweit sie zu Bibliotheken gehören ??????? –

Verwandte Themen