找不到Gradle DSL方法:exclude()

时间:2017-07-14 19:23:04

标签: java android android-studio gradle

我在我的项目中使用了很多库。有些库使用相同的jar文件因此我在build.gradle上写了这个:

dependencies {
compile fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.twotoasters.jazzylistview:library:1.2.1'
compile 'com.google.firebase:firebase-core:10.2.4'
compile 'com.google.firebase:firebase-database:10.2.4'
compile 'com.orhanobut:dialogplus:1.11@aar'
compile 'com.github.recruit-lifestyle:FloatingView:2.2'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.nineoldandroids:library:2.4.0'
compile ('com.specyci:residemenu:1.6+'){
    exclude group: 'com.nineoldandroids', module: 'library'    }
compile files('libs/poppyview.jar'){
    exclude group: 'com.nineoldandroids', module: 'library'    }

}

我收到错误: 错误:(54,0)未找到Gradle DSL方法:'exclude()' 可能的原因:

  • 项目'DopingEng'可能正在使用不包含该方法的Android Gradle插件版本(例如,1.1中添加了'testCompile'。 0)。 将插件升级到版本2.3.1并同步项目
  • 项目'DopingEng'可能正在使用不包含该方法的Gradle版本。 打开Gradle包装文件
  • 构建文件可能缺少Gradle插件。 申请Gradle插件
  • Gradle已经更新,我该如何解决这个问题?

    1 个答案:

    答案 0 :(得分:2)

    这是问题

    compile files('libs/poppyview.jar'){
       exclude ... 
    } 
    

    基于文件的依赖项与来自存储库的依赖项的工作方式不同。没有与之关联的元数据(例如,没有依赖性信息),因此也没有什么可以排除(因为没有传递依赖性)。

    你有libs/poppyview.jar的pom / ivy元数据吗?如果是这样,那么你不应该这样声明它(我建议使用本地maven存储库文件夹)。如果你没有,那么就没有什么可以排除