Question Erreur :: dupliquer les fichiers lors de l'emballage de l'APK


Studio Android. Je reçois ce genre d'erreur lors de l'exécution de l'application.

Error:Execution failed for task ':app:packageDebug'. Duplicate files copied in APK META-INF/notice.txt

build.gradle

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/ASL2.0'
    }

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile 'com.j256.ormlite:ormlite-android:4.48'
    compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
    compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
    compile 'com.octo.android.robospice:robospice:1.4.11'
    compile 'com.octo.android.robospice:robospice-spring-android:1.4.11'
}

Comment puis-je corriger cette erreur?

ÉDITÉ

Ces options d'exclusion ont résolu mon problème:

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

143
2018-03-17 22:56


origine


Réponses:


Je pense que la comparaison de chaînes est sensible à la casse. essayer avec exclude 'META-INF/notice.txt'


56
2018-03-18 05:25



Je pense que vous devez inclure uniquement ces options dans build.gradle:

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

21
2018-06-18 09:15



Réponse courte:

Voir la sortie détaillée de la graduation en utilisant gradle assemble et Notez les fichiers en double et excluez-les en utilisant:

android {
  packagingOptions {
    exclude 'META-INF/notice.txt'
  }
}

Longue réponse:

Exécuter le assemble graduer la tâche depuis la ligne de commande pour une sortie détaillée:

./gradlew assemble || gradle assemble

Cela montre automatiquement ce qu'il faut exclure:

studioWorkspace/CCDroid git:(master) ✗ ± ./gradlew assembleDebug
:app:preBuild
:app:compileDebugNdk UP-TO-DATE
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:app:prepareComAndroidSupportAppcompatV72200Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preDexDebug UP-TO-DATE
:app:dexDebug UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:validateDebugSigning
:app:packageDebug
Error: duplicate files during packaging of APK /Users/shubham/code/studioProjects/CCDroid/app/build/outputs/apk/app-debug-unaligned.apk
    Path in archive: LICENSE
    Origin 1: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
    Origin 2: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-all/1.8.4/5c97d8b6e715ed941aeb93d6fc401ab3eb18a566/mockito-all-1.8.4.jar
You can ignore those files in your build.gradle:
    android {
      packagingOptions {
        exclude 'LICENSE'
      }
    }
:app:packageDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:packageDebug'.
> Duplicate files copied in APK LICENSE
    File 1: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar
    File 2: /Users/shubham/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.14.8/8ac073941721e0b521ec8e8bad088b1e7b8cd332/lombok-1.14.8.jar


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 11.863 secs

Voir cette partie en sortie:

android {
  packagingOptions {
    exclude 'LICENSE'
  }
}

Il montre même la liste des dépendances à l'origine des fichiers en double (LICENSE). Voir les lignes avec Origine # dans la sortie.


9
2018-03-28 19:41



Ajoutez ceci dans votre fichier build.gradle ...

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

comme ça...

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "your package name"
    minSdkVersion 14
    targetSdkVersion 25
    versionCode 30
    versionName "3.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {
    exclude 'META-INF/NOTICE' // will not include NOTICE file
    exclude 'META-INF/LICENSE' // will not include LICENSE file
    exclude 'META-INF/DEPENDENCIES' // will not include LICENSE file
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
}
}

6
2017-08-10 17:48



Il y a plus d'une erreur, vous avez raison.

En dessous de apply plugin: 'android-library'

Ajoute ça :: android { packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } }

La 1ère erreur est due aux doublons de fichiers, la seconde à des fichiers de licence et de notification. Il travaillera après

MODIFIER:: Voir mon post ici pour identifier les problèmes :: Plugin Android Gradle 0.7.0: "fichiers en double lors du packaging de l'APK"


3
2018-05-01 22:58



cela fonctionne pour moi

android {
...

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
    }
}

1
2017-09-17 07:41



Intéressant, quand je supprimé cette ligne de gradle, cela a fonctionné:

compile 'org.apache.commons:commons-lang3:3.3.1'

1
2017-10-01 17:11



J'ai du jouer un peu pour trouver le bon emplacement pour les options d'emballage. Résolution du problème de fichier en double pour un conflit entre jackson-core: 2.2.2 et jackson-databind: 2.2.2 Aussi, le DSL semble avoir changé récemment Donc, dans le récent Android Studio 1.4.1 avec buildTools 23, vous devez placer les options android.packaging au même niveau que compileOptions ET PAS dans les modèle {android { accolades!

model { 
    android {
        compileSdkVersion = 21
        buildToolsVersion = "23.0.1"

        defaultConfig.with {
            applicationId = "com.android.sensorgraph"
            minSdkVersion.apiLevel = 21
            targetSdkVersion.apiLevel = 22
    }   }

    android.packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
}
    compileOptions.with {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

}


0
2017-11-03 16:59