在APK META-INF中复制的重复文件

时间:2016-04-19 02:43:35

标签: java android gradle

嗨我在Android开发中的新功能,我正在尝试构建我的apk但我得到了这个erorr。我更新了我的gradle,我得到了副本。我该如何解决这个错误?

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/maven/com.squareup.okhttp/okhttp/pom.properties
    File1: C:\Users\Toshiba\.gradle\caches\modules-2\files-2.1\com.squareup.okhttp\okhttp\2.0.0\4c8d1536dba3812cc1592090dc20c47a4ed3c35e\okhttp-2.0.0.jar
    File2: C:\Users\Toshiba\.gradle\caches\modules-2\files-2.1\com.crashlytics.android\crashlytics\1.1.13\e821eafa1bf489a26bdb71f95078c26785b37a1\crashlytics-1.1.13.jar 

并且我的build.gradle是错误来的吗?

buildscript {
    repositories {
        maven { url 'http://download.crashlytics.com/maven' }
    }

    dependencies {
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'crashlytics'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.mymonas.ngobrol"
        minSdkVersion 14
        targetSdkVersion 20
        versionCode 1
        versionName "0.9.0.68"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {

    mavenCentral()
    maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'], exclude: 'android-support-v4.jar')
    compile project('libs:floatlabel')
    compile 'com.android.support:support-v4:21.0.0'
    compile 'com.android.support:support-v13:21.0.0'
    compile 'com.squareup.retrofit:retrofit:1.7.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.okhttp:okhttp:2.0.0'
    compile 'com.github.dmytrodanylyk.android-process-button:library:1.0.1'
    compile 'com.google.android.gms:play-services:6.1.11'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
    compile 'com.makeramen:roundedimageview:1.3.0'
    compile 'com.andreabaccega:android-form-edittext:1.1.0@aar'
    compile 'com.crashlytics.android:crashlytics:1.+'
}

4 个答案:

答案 0 :(得分:6)

今天我的React Native应用程序遇到了相同或至少非常类似的问题。问题只出现在我的Mac上。我们可以想到的唯一可信的解释是我更新了一堆Android Studio工具,然后gradle无法使用我们的依赖项正确构建。无论如何从okhttp中排除pom.propertiespom.xml之后我一直得到同样的错误但事实证明我只需排除更多文件。这是我在build.gradle中的完整packagingOptions

packagingOptions {
  exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.properties'
  exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'
  exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.xml'
  exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'
}

答案 1 :(得分:0)

要解决您的问题,请将其添加到您的构建gradle

packagingOptions {
    exclude 'META-INF/pom.properties' /*OR*/ 'META-INF/maven/com.squareup.okhttp/okhttp/pom.properties
}

答案 2 :(得分:0)

似乎okhttp和crashlytics在新的gradle版本中不能一起工作(在我的情况下为2.10)。我通过将crashlytics更新为更新的版本(现在称为Fabric)来修复此问题。

答案 3 :(得分:0)

packagingOptions 
{
   exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.properties
   exclude 'META-INF/maven/com.squareup.okhttp/okhttp/pom.xml'
}

Please check for correct path "com.squareup.okhttp/okhttp/pom.properties" in your errorlog.