Android ';依赖关系';无法应用于';(groovy.lang.Closure)和#x27;
我无法修复此错误:Android ';依赖关系';无法应用于';(groovy.lang.Closure)和#x27;,android,groovy,gradle,Android,Groovy,Gradle,我无法修复此错误: dependencies cannot be applied to '(groovy.lang.Closure) 这是我的gradle文件: buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.crashlytics.tools.g
dependencies cannot be applied to '(groovy.lang.Closure)
这是我的gradle文件:
buildscript {
repositories {
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
}
}
apply plugin: 'android'
apply plugin: 'crashlytics'
repositories {
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':FRNDzTER_core')
compile project(':cropper')
compile project(':stickyListHeaders')
compile "com.nostra13.universalimageloader:universal-image-loader:${rootProject.universalImageLoaderVersion}"
compile "com.google.android.gms:play- services:${rootProject.googlePlayServicesVersion}"
compile "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
compile 'com.crashlytics.android:crashlytics:1.+'
}
android{
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
debuggable rootProject.prodDebug
proguardFile 'proguard.cfg'
}
}
dependencies {
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
lintOptions {
abortOnError false
}
}
根据Android Studio生成的内容,您需要一个顶级项目文件
build.gradle
,另一个用于您的应用程序build.gradle
顶级:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url 'http://download.crashlytics.com/maven' }
}
}
应用程序级别:
apply plugin: 'com.android.application'
apply plugin: 'crashlytics'
android{
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
debuggable rootProject.prodDebug
proguardFile 'proguard.cfg'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
lintOptions {
abortOnError false
}
} `
dependencies {
compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':FRNDzTER_core')
compile project(':cropper')
compile project(':stickyListHeaders')
compile "com.nostra13.universalimageloader:universal-image- l loader:${rootProject.universalImageLoaderVersion}"
compile "com.google.android.gms:play- services:${rootProject.googlePlayServicesVersion}"
compile " "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
compile 'com.crashlytics.android:crashlytics:1.+'
}
但是,即使没有这些,你的问题是,你的android
插件配置中有一个依赖项
android {
dependencies {
}
}
删除空的依赖项
块
编辑:我在最新的Android Studio中也出现了这个错误,我所要做的就是添加一个更新版本的Gradle插件,并编译DK22版本
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
我打赌这个问题与给你警告的代码完全无关,很可能是你的proguard文件。我的代码中包含以下内容,并收到了相同的警告:
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
通过注释掉runProguard false
,我所有的问题都消失了,如图:)我的问题是,整个build.setting文件被占用,无法应用于“(groovy.lang.Closure)
警告消息,而不是发生在任何特定变量上
我尝试过其他人提供的所有解决方案,但没有一个对我有效。
我最后做了这些步骤,然后它就像一个符咒。如果你遇到同样的问题,那就试试看
打开并编辑文件:yourproject/gradle/wrapper/gradle wrapper.properties
。编辑内容以更新gradle分发版本,如下图所示,然后保存
删除此文件夹:yourproject/.gradle
单击将项目与gradle文件同步
,就可以开始了
您可以转到“首选项”并选择“使用默认渐变包装器”,然后重建项目。它对我很有效:
转到
窗口
文件->设置->构建、执行、部署->构建工具->渐变
Mac
首选项->构建、执行、部署->构建工具->渐变
然后选择Use default gradle wrapper当我注意到我的gradle
主目录出错的警告时,我进入首选项尝试其他答案之一。因此,我打开了文件浏览器,选择了较新的gradle
版本,所有错误都消失了。下图所示
我用gradle 2.10解决了这个问题
请在此处下载:
并将您的本地渐变分布设置为:
关闭项目(归档/关闭项目)
在“开始”菜单上选择“打开现有Android Studio项目”,然后选择包含Android项目的文件夹
这对我很有用。如果您已经在使用“默认渐变包装器”,但它没有帮助:
In Menu click: File -> Invalidate Caches / Restart...
如果也没有帮助,请尝试两个步骤:
1) Delete ".gradle" folder (and "build" folder if you have it already)
2) In Menu click: File -> Invalidate Caches / Restart...
重新启动后,警告应消失
(对我来说,它对Android Studio和IntelliJ Idea都有效)我在Android Studio 2.2中也有同样的问题,它对我有效:
原件:
android {
...
}
dependencies {
...
}
在android
中移动依赖项
:
android {
...
dependencies {
...
}
}
Gradle文件可以在多个位置显式设置,以避免此类错误。例如,改变
configurations {
到
或
到
要解决此问题,只需关闭项目,然后在“开始”菜单上选择“打开现有Android Studio项目”,然后选择包含Android项目的文件夹。注意,选择文件夹,而不是.iml项目文件。我在Android Studio中通过使缓存无效并重新启动解决了这个问题
文件->使缓存无效/重新启动..
在“android”部分的同一位置剪切并粘贴“buildTypes”,然后重新同步(刷新)项目对于Kotlin项目,我在IntelliJ中遇到了类似的问题。看起来问题在于,在我的项目中,尽管设置为使用JDK 8,但语言和API版本不知何故设置为1.3。请参见项目首选项>面。在我的例子中,我勾选了“使用项目设置”,但手动设置每个方面也可能有效。对于使用M1 Intellij IDEA的人,只需添加build.gradle(:app)
我做了同样的问题:(老实说,我认为你应该修复你的Crouton、Universal Image Loader和googleplayServices依赖项中的额外引号和空格。你也应该只使用部分Google Play服务,因为它不起作用……你能给我fb id或任何其他信息吗……这样我们就可以锻炼了吗?请?…那样的话,我不知道你的bug是什么。)(上次我遇到这种情况时,我的android和gradle插件已经过时,我使用的配置类型不再依赖于您使用的是命令行还是IDE。如果是IDE,那么是哪个IDE。我非常确定这些都非常相关,正如我在那里的回答所示,我认为错误标记是一个错误,因此存在差异。)解决方案。这并不是说这里的首要答案不能对你的“当前”提出一些非常有效的一般观点gradle BuildScript查看此Daniel Wilson如果您将runProguard
改为minifyEnabled
,是否有帮助?提供了更多信息,无需删除yourproject/.gradle目录。如果您选择这样做,请确保保存您在其中进行的任何自定义,例如使用org.gradl添加gradle.properties文件e、 daemon=true(一种常见的优化)。但是,您可以简单地重新生成,gradle包装器将下载distributionUrl中指定的新版本以及旧版本。旧版本目录保留在项目的gradle目录中是可以的。在gradle包装器中更新gradle版本。properties
解决了我的问题。谢谢!有人知道吗解释为什么会发生这种情况?似乎在从1.4更新到1.5后,此设置被“重置”,以在我的ma上使用本地分发
project.configurations {
task {
description 'foo'
task {
setDescription 'foo'
//noinspection GroovyAssignabilityCheck
buildFeatures {
viewBinding
}