2016-06-02 4 views
71

Я собираюсь добавить поддержку RESTful Web Service с помощью Spring в приложение для Android, как описано здесь https://spring.io/guides/gs/consuming-rest-android/.Android Gradle Повторяющиеся файлы, скопированные в APK META-INF/license.txt

Это верхнего уровня build.gradle конфигурации:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 
buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

Это мой app/build.gradle конфигурации:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "com.example" 
     minSdkVersion 8 
     targetSdkVersion 17 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 

    dependencies { 
     compile 'com.android.support:appcompat-v7:+' 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE' 
     compile 'com.fasterxml.jackson.core:jackson-databind:2.3.2' 
    } 

    packagingOptions { 
     exclude 'META-INF/NOTICE' // will not include NOTICE file 
     exclude 'META-INF/LICENSE' // will not include LICENSE file 
    } 

} 

Прямо сейчас он не со следующей ошибкой:

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. 
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/license.txt 
    File1: user\.gradle\caches\modules-2\files-2.1\org.springframework.android\spring-android-rest-template\1.0.1.RELEASE\e132d929bd181941f79b0d63edafb8a86ae6fd33\spring-android-rest-template-1.0.1.RELEASE.jar 
    File2: user\.gradle\caches\modules-2\files-2.1\org.springframework.android\spring-android-core\1.0.1.RELEASE\e68f0e8e4b636ee30c4de58953be38d9b72a5e3b\spring-android-core-1.0.1.RELEASE.jar 

Что я делаю неправильно и как это исправить?

+0

Возможный дубликат [Как решить "Дублировать файлы, скопированные в APK META-INF/\ *"] (http://stackoverflow.com/ Вопросы/33923461/how-do-i-resolve-duplicate-files-copied-in-apk-meta-inf) –

ответ

237

Написать ниже линии в вашем уровне приложения 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

Я обновил свой вопрос этими строками .. По какой-то причине это не помогает – brunoid

+0

Plz check my отредактировал ответ @brunoid –

+0

спасибо! проблема ушла. – brunoid

3

Its помогает мне. Попробуйте этот код :)

packagingOptions { 
 
     exclude 'META-INF/LICENSE' 
 
     exclude 'META-INF/NOTICE' 
 
    }

8

Если решение в выбранном ответе не устранить проблему, попробуйте добавить

exclude 'META-INF/ASL2.0' 

, а также. Или в основном, укажите имя дубликата файла и исключите его. Добавление выше исправило проблему для меня.

0

Добавление этих линий помогло мне.

shadowJar { 
    // Filtering shadow jar contents by file pattern. 
    exclude 'schemaorg_apache_xmlbeans/attribute/**' 
    exclude 'schemaorg_apache_xmlbeans/attributegroup/**' 
    exclude 'schemaorg_apache_xmlbeans/element/**' 
    exclude 'schemaorg_apache_xmlbeans/identityconstraint/**' 
    exclude 'schemaorg_apache_xmlbeans/javaname/**' 
    exclude 'schemaorg_apache_xmlbeans/modelgroup/**' 
    exclude 'schemaorg_apache_xmlbeans/namespace/**' 
    exclude 'schemaorg_apache_xmlbeans/src/**' 
    exclude 'schemaorg_apache_xmlbeans/system/sXML*/**' 
    exclude 'schemaorg_apache_xmlbeans/system/s8C3F193EE11A2F798ACF65489B9E6078/**' 
    exclude 'schemaorg_apache_xmlbeans/type/**' 

    exclude 'repackage/**' 

    exclude 'LICENSE.txt' 
    exclude 'NOTICE.txt' 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/LICENSE.txt' 
    exclude 'META-INF/NOTICE' 
    exclude 'META-INF/NOTICE.txt' 
    exclude 'META-INF/maven/**' 

    // these are only needed when handling Visio files, remove it if you would like to use Visio support 
    dependencies { 
     exclude(dependency('com.github.virtuald:curvesapi')) 
     exclude(dependency('commons-codec:commons-codec')) 
    } 

    // Relocate javax dependencies so Android does not choke 
    relocate 'javax.xml.namespace', 'org.apache.poi.javax.xml.namespace' 
    relocate 'javax.xml.stream', 'org.apache.poi.javax.xml.stream' 
    relocate 'javax.xml.XMLConstants', 'org.apache.poi.javax.xml.XMLConstants' 
} 
1

Это один работал для меня:

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' 
    exclude 'META-INF/spring.schemas' 
    exclude 'META-INF/spring.tooling' 
    exclude 'META-INF/INDEX.LIST' 
    exclude 'META-INF/spring.handlers' 
} 
configurations { 
    all*.exclude module: 'classworlds' 
    all*.exclude module: 'commons-logging' 
    all*.exclude module: 'httpclient' 
    all*.exclude module: 'maven-artifact' 
    all*.exclude module: 'maven-artifact-manager' 
    all*.exclude module: 'maven-error-diagnostics' 
    all*.exclude module: 'maven-model' 
    all*.exclude module: 'maven-project' 
    all*.exclude module: 'maven-settings' 
    all*.exclude module: 'plexus-container-default' 
    all*.exclude module: 'plexus-interpolation' 
    all*.exclude module: 'plexus-utils' 
    all*.exclude module: 'wagon-file' 
    all*.exclude module: 'wagon-http-lightweight' 
    all*.exclude module: 'wagon-provider-api' 

} 

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

  • Нет связанных вопросов^_^