当前位置:   article > 正文

android studio ignore assets pattern,Gradle duplicate entry error: META-INF/MANIFEST.MF (Or how to d...

zipexception: duplicate entry: meta-inf/

I've cloned a github repository because I wanted to study the code, but when I tried to build it in Android Studio, I ran into some trouble.

After adding the google maven repository (as prompted by Android Studio) and updating both the Gradle Plugin Version and the Grade Version (to 3.5.2 and to 5.4.1, respectively), the build fails because of the following error:

Cause: duplicate entry: META-INF/MANIFEST.MF

And this, to be more specific:

Caused by: java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF

Here is my project level build.gradle file:

buildscript {

repositories {

jcenter()

google()

}

dependencies {

classpath 'com.android.tools.build:gradle:3.5.2'

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

maven {

url 'https://maven.google.com'

}

}

}

Here's my module build.gradle file (before trying anything):

apply plugin: 'com.android.application'

android {

compileSdkVersion 22

buildToolsVersion '28.0.3'

defaultConfig {

applicationId "com.thelittlenaruto.supportdesignexample"

minSdkVersion 11

targetSdkVersion 22

versionCode 1

versionName "1.0"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation ('com.android.support:appcompat-v7:22.2.1')

implementation ('com.android.support:design:22.2.1')

implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'

}

Here's what I've tried so far:

Adding the following to the android section of my module build.gradle file:

sourceSets {

main{

java{

exclude '**/META-INF/MANIFEST'

exclude '**/META-INF/MANIFEST.MF'

exclude 'META-INF/MANIFEST'

exclude 'META-INF/MANIFEST.MF'

exclude '!META-INF/MANIFEST.MF'

}

}

}

Adding this:

sourceSets.main.res.filter.exclude 'META-INF/MANIFEST'

sourceSets.main.res.filter.exclude 'META-INF/MANIFEST.MF'

Also this:

packagingOptions {

apply plugin: 'project-report'

exclude '**/META-INF/MANIFEST'

exclude '**/META-INF/MANIFEST.MF'

exclude 'META-INF/MANIFEST'

exclude 'META-INF/MANIFEST.MF'

exclude '!META-INF/MANIFEST.MF'

}

And this:

packagingOptions {

pickFirst '**/META-INF/MANIFEST'

pickFirst '**/META-INF/MANIFEST.MF'

pickFirst 'META-INF/MANIFEST'

pickFirst 'META-INF/MANIFEST.MF'

pickFirst '!META-INF/MANIFEST.MF'

}

This:

aaptOptions {

ignoreAssetsPattern "!META-INF/MANIFEST.MF"

ignoreAssetsPattern "META-INF/MANIFEST.MF"

}

Nothing worked.

After searching for a solution, I think the problem is that I have duplicated dependencies. So I've tried the following:

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation ('com.android.support:appcompat-v7:22.2.1'){

exclude module: 'support-v4'

}

implementation ('com.android.support:design:22.2.1')

implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'

}

And this:

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation ('com.android.support:design:22.2.1'){

exclude module: 'support-v7'

}

implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar'

}

I still get the same error.

Could anyone please tell me what I'm doing wrong?

Thank you in anticipation. :)

# Answer 1

4d350fd91e33782268f371d7edaa8a76.png

As Rajen Raiyarela said, go to File->Project Structure->Project->Android Gradle Plugin Version and downgrade it from 3.5.2 to 3.5.1.

# Answer 2

Set project dependencies to:

classpath 'com.android.tools.build:gradle:3.5.3'

or latest one.

Note: by doing this, my problem has been resolved.

# Answer 3

This issue is happening because of duplicate dependencies.

Check for multiple dependencies in the Gradle app.

# Answer 4

Either package it once or not at all:

android {

packagingOptions {

pickFirst "META-INF/MANIFEST.MF"

// exclude "META-INF/MANIFEST.MF"

}

}

# Answer 5

as @rubo77 says and after my confirmation:

Latest solution

Upgrade gradle version

eg:

from 3.5.2 to 3.5.3

from 3.5.2 to 3.5.4

Obsolete solution:

downgrade from 3.5.2 to 3.5.1

my choice is : upgrade from 3.5.2 to 3.5.4

build.gradle:

dependencies {

// classpath 'com.android.tools.build:gradle:3.5.2'

// classpath 'com.android.tools.build:gradle:3.5.3'

classpath 'com.android.tools.build:gradle:3.5.4'

}

fuBP6.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/266414
推荐阅读
相关标签
  

闽ICP备14008679号