2016-05-02 1 views
0

В моем приложении для Android я использую библиотеки httpcore и httpmime. Раздел зависимостей в файле build.gradle содержит нижеследующую часть,Добавление httpcore и httpmime-библиотек в проект Android дает ошибку при запуске приложения

compile 'org.apache.httpcomponents:httpcore:4.4.4' 
compile 'org.apache.httpcomponents:httpmime:4.5.2' 

и когда я запускаю приложение, выдает сообщение об ошибке. журнал как показано ниже,

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. 
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/NOTICE 
     File1: /Users/marpak/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.5.2/22b4c53dd9b6761024258de8f9240c3dce6ea368/httpmime-4.5.2.jar 
     File2: /Users/marpak/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.4/b31526a230871fbe285fbcbe2813f9c0839ae9b0/httpcore-4.4.4.jar 

, как я могу это исправить

ответ

5

добавить это в вашем файле build.gradle

android { 
    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' 
    } 
    } 
+0

эта решение проблема. Большое спасибо: D –

+0

Рад помочь вам. :) –

+0

это действительно помогает! Спасибо за ответ –

0

Лучше использовать этот, он будет включать в себя только одну лицензию файл, некоторые лицензии (большая часть открытого источника) не позволяют исключить лицензию из окончательного кода:

packagingOptions { 
    pickFirst 'META-INF/DEPENDENCIES.txt' 
    pickFirst 'META-INF/LICENSE.txt' 
    pickFirst 'META-INF/NOTICE.txt' 
    pickFirst 'META-INF/NOTICE' 
    pickFirst 'META-INF/LICENSE' 
    pickFirst 'META-INF/DEPENDENCIES' 
    pickFirst 'META-INF/notice.txt' 
    pickFirst 'META-INF/license.txt' 
    pickFirst 'META-INF/dependencies.txt' 
    pickFirst 'META-INF/LGPL2.1' 
} 

Это не самый лучший вариант, так как если у вас будут разные файлы лицензий с тем же именем, вы потеряете их, но намного лучше, чем исключить все.

Смежные вопросы