Android gradle build错误:(9,0)未findGradle DSL方法:'compile()'。
当我尝试同步我的项目时,出现以下生成错误:
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版本需要匹配依赖项中的那个版本?
我也有一个build.gradle文件在应用程序目录本身 – 低1级,但我不认为这是它所指的,但这里是:
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.+' }
我已经尝试应用每个单独的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'
行。 保留在其他build.gradle
文件中的compile 'com.google.android.gms:play-services:6.1.+'
。
buildscript
的dependencies
closures仅适用于Gradle插件。 在模块的build.gradle
文件中find的顶层dependencies
closure用于应用程序依赖关系。
看到报告说,这个问题是出于其他原因,但这个解决了我。
如果你在项目结构(Android Studio)中进行了任何更改并按下确定,Gradle将被同步,但是这种types的同步,如果依赖块具有类似的东西:
同步之后,该块将保持这种状态:
解决此问题的一种方法是插入一个换行符,使其保持原来的状态,或者在两个语句之间放置一个分号。
我希望它有帮助。
只要在你的依赖中添加愚蠢的语句
应用插件:'jetty'
大家好,对我来说这是一个“耗时几天的工作”,使我的应用程序运行在Android Studio( 我从Eclipse迁移,也有这个问题 )。 最后我发现了这个非常简单的方法。
- 在src / main / java下创buildlibs文件夹,左边是App / java / libs。
- 复制并粘贴所有的外部jar子到这里。
- 转到左窗格并右键单击您的应用程序,然后单击打开模块设置
- 然后出现“项目结构”窗口。
- 然后移到依赖关系选项卡。 最后一步:将所有位于App / java / libs中的jar(你可以在src / main / java / libs中find它们)。
这是所有的享受。
在Module的build.gradle文件中声明依赖项 ,而不是在AlexTest的build.gradle文件中