我正在开发一个Android项目,使用Gradle,如下所述。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':workspace:darkmoon:darul-android:vitamio:vitamio')
compile project(':Dev:adt-bundle-mac-x86_64:sdk:extras:google:google_play_services:libproject:google-play-services_lib')
}
android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
但是当我构建它时,不断收到此错误:&#34;未找到Gradle DSL方法&#34;,它指向 以下一行:
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':workspace:epsilonmobile:darul-android:vitamio:vitamio')
compile project(':Dev:adt-bundle-mac-x86_64:sdk:extras:google:google_play_services:libproject:google-play-services_lib')
}
道歉,如果这个问题有点像菜鸟,我对Gradle和Android Studio都不熟悉
答案 0 :(得分:14)
classpath
配置仅适用于buildscript
个依赖项。您需要删除顶级classpath 'com.android.tools.build:gradle:0.12.+'
块中的行dependencies
。 (Gradle插件需要在buildscript { dependencies { ... } }
下声明。)
答案 1 :(得分:4)
在gradle脚本中,buildscript
是一个特殊的部分,您可以在其中声明构建脚本本身的依赖关系(即构建过程所需的二进制文件)。
gradle构建过程只不过是一个java进程,因此它支持正常的类路径依赖。
com.android.tools.build:gradle:0.12.+
标识构建过程所需的二进制文件(它包含能够理解/执行构建脚本的android 部分的代码)。
将通过此脚本构建的android apk不需要在您的Android设备上运行二进制com.android.tools.build:gradle:0.12.+
(即,当它在设备上运行时,apk当然已经构建):那里没有理由在顶级依赖项中再次声明它
(这些是您的应用程序所需的依赖项)