当我尝试同步项目时,我收到以下构建错误:
Error:(9, 0) Gradle DSL method not found: 'compile()'
Possible causes:The project 'AlexTest' may be using a version of Gradle that does not contain the method.
The build file may be missing a Gradle plugin.
link: Apply Gradle plugin
我已经尝试将他们链接到我的每个单独的gradle插件应用到底部的那个链接,但同样的问题,所以我得出结论,第一个错误是原因。
这是AlexTest的build.gradle文件(项目目录):
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.13.2'
compile 'com.google.android.gms:play-services:6.1.11'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
我认为这是它遇到问题的gradle文件。但我不确定它指的是什么方法。
此处还有gradle-wrapper.properties,它也提到了:
#Mon Nov 10 01:06:12 PST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
distributionUrl中的gradle版本是否需要匹配依赖项中的gradle版本?
我在app目录中也有一个build.gradle文件 - 低一级,虽然我不认为这是它所指的,但是这里是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "com.snappiesticker.alextest"
minSdkVersion 16
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.1.+'
}
答案 0 :(得分:78)
我已经尝试将他们链接到我的每个单独的gradle插件应用到底部的那个链接,但同样的问题,所以我得出结论,第一个错误是原因。
正确。
这是AlexTest的build.gradle文件(项目目录):
您会注意到此文件包含代码注释:
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
从该文件中删除compile 'com.google.android.gms:play-services:6.1.11'
行。将您拥有的compile 'com.google.android.gms:play-services:6.1.+'
保留在另一个build.gradle
文件中。
dependencies
中的buildscript
关闭仅适用于Gradle插件。在模块的dependencies
文件中找到的顶级build.gradle
闭包用于应用程序依赖。
答案 1 :(得分:13)
Saw报告说问题是由于其他原因而发生的,但这对我来说已经解决了。
如果您在项目结构(Android Studio)中执行任何更改并按OK,Gradle将被同步,但这种类型的同步,如果依赖块具有类似的内容:
同步后,此块将保持这种状态:
解决问题的一种方法是在同步之前插入一个换行符,或者在两个语句之间放一个分号。
我希望它有所帮助。
答案 2 :(得分:3)
只需在依赖项中添加愚蠢的语句
申请插件:'码头'
答案 3 :(得分:1)
大家好,对我来说,让我的应用程序在Android Studio中运行是“几天耗费工作”(我从Eclipse迁移并且也遇到了这个问题)。最后我找到了非常简单的方法。
这就是享受它。
答案 4 :(得分:1)