找不到参数[{module = support-v4}]的方法exclude()

时间:2017-01-20 18:53:21

标签: java android gradle build.gradle

我试图在关闭即时运行的情况下运行我的应用程序但是我收到此错误:

  

错误:任务执行失败   ':应用程序:transformClassesWithJarMergingForDebug'

     
    

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:     机器人/支撑/ V4 /视图/ KeyEventCompatEclair.class

  

这是我的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.jua.app"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile project(path: ':app_Data')
    compile files('libs/android-support-v4.jar')
}

我尝试了this主题的解决方案:

compile files('libs/android-support-v4.jar'){
    exclude module: "support-v4"
}

现在,当我尝试同步gradle.build:

时,我收到此错误
  

错误:(29,0)无法为参数找到方法exclude()   [{module = support-v4}]关于文件集合的类型   org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection。   打开文件

我现在有点失落,如果有人知道如何解决这个问题我会很感激。

修改

我删除了

  

编译文件(' libs / android-support-v4.jar')

完全然后我仍然得到第一个错误。

2 个答案:

答案 0 :(得分:18)

这是一个语法问题。您正在调用exclude的闭包被解释为files()方法的参数,这是不正确的。应该看起来像这样

compile (files('libs/android-support-v4.jar')){
  exclude module: "support-v4"
}

答案 1 :(得分:0)

对于任何有同样问题的人,我从文件夹中删除了android-support-v4.jar,现在它可以工作了。出于某种原因,如果从gradle.build文件中删除它,它将继续产生问题。