我无法解决此错误:
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
}
}
答案 0 :(得分:37)
转到
<强>窗强>
档案 - &gt;设置 - &gt;构建,执行,部署 - &gt;构建工具 - &gt;摇篮
<强>苹果强>
偏好 - &gt;构建,执行,部署 - &gt;构建工具 - &gt; Gradle
并选择Use default gradle wrapper
答案 1 :(得分:22)
根据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.+'
}
但即使没有这一切,您的问题是您的dependencies
插件配置中有android
。
android {
dependencies {
}
}
删除该空dependencies
块。
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()
}
}
答案 2 :(得分:18)
我的问题是整个build.setting文件都被cannot be applied to '(groovy.lang.Closure)'
警告消息占用,而不是发生在任何特定变量上。
我已尝试过其他人提供的所有解决方案,但这些解决方案都不适用于我。 我结束了这些步骤,然后它就像一个魅力。如果您遇到同样的问题,请尝试一下。
yourproject/gradle/wrapper/gradle-wrapper.properties
。编辑内容以更新gradle分发版本,如下图所示,然后保存。yourproject/.gradle
。Sync project with gradle files
,然后就可以了。答案 3 :(得分:18)
如果您已经使用“默认gradle包装器”并且没有帮助:
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)
答案 4 :(得分:4)
答案 5 :(得分:1)
我敢打赌,这个问题与给你警告的代码完全无关,很可能是你的proguard文件。我的代码中有以下内容并得到了相同的警告:
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
通过评论runProguard false
,我的所有问题都消失了,如图所示:)
答案 6 :(得分:1)
我在android studio 2.2中遇到同样的问题,它对我有用:
原:
android {
...
}
dependencies {
...
}
在dependencies
中移动android
:
android {
...
dependencies {
...
}
}
答案 7 :(得分:1)
答案 8 :(得分:0)
这项工作适合我。
答案 9 :(得分:0)
可以在多个位置显示Gradle文件以避免此类错误。例如。变化
configurations {
到
project.configurations {
或
task {
description 'foo'
到
task {
setDescription 'foo'
答案 10 :(得分:0)
要解决此问题,只需关闭项目,然后在开始菜单中选择“打开现有的Android Studio项目”,然后选择包含Android项目的文件夹。请注意,选择文件夹,而不是.iml项目文件。
答案 11 :(得分:0)
剪切然后粘贴&#34; buildTypes&#34;在&#34; android&#34;中的同一个地方部分和重新同步(刷新)项目
答案 12 :(得分:0)
在Kotlin项目的IntelliJ中,我遇到了与此类似的问题。看起来问题出在我的项目中,即使它被设置为使用JDK 8,语言和API版本也被设置为1.3。请参阅项目首选项>构面。就我而言,我勾选了“使用项目设置”,但按每个方面手动设置它们也可能起作用。
答案 13 :(得分:0)
对于拥有 M1 Intellij IDEA 的人,只需添加 build.gradle(:app)
def run_step1(params):
# params is assumed to be a dict
# unpack params here if needed (path_step was not explicitly in the `for p in params_compute:` loop so I assume it can be stored in params)
preprocess_result = run_preprocess(path_step, params)
gpu_result = run_gpu(preprocess_result, params)
post_gpu = run_postgpu(gpu_result, params) # Write a result file post_gpu.tif
return post_gpu
def run_step2(post_gpu, params):
# unpack params here if needed
data_file = rio.open(outputdir + "/post_gpu.tif").read() #opens the file written at the end of step1
temp_result1 = process(data_file, params)
final_merge = merging(temp_result1, params)
write = write_final(final_merge, params)
return write
chain = []
for p in params_compute:
y = dask.delayed(run_step1)(p)
z = dask.delayed(run_step2)(y, p)
chain.append(z)
dask.compute(*chain)
答案 14 :(得分:-1)