当我尝试从terminal运行./gradlew build.gradle时,出现以下错误:
> No signature of method: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (org.gradle.api.internal.project.DefaultProject_Decorated) values: [project ':TestMobile'] Possible solutions: module(java.lang.Object)
我已经尝试在root build.gradle文件和子项目上应用java插件。 但仍然有同样的错误。
我有以下项目结构:
ProjectRepos ->build.gradle ->settings.gradle ->TestMobile (Android plugin) ->build.gradle ->ThirdParty/SlidingMenu (Android library) ->build.gradle
顶级build.gradle包含:
// Top-level build file where you can add configuration options common to all sub- projects/modules. buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' compile project(':TestMobile') compile project(':ThirdParty:SlidingMenu') } }
settings.gradle包含以下内容:
include ':ThirdParty:SlidingMenu' include ':TestMobile'
TestMobile – > build.gradle包含以下内容:
apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':ThirdParty:SlidingMenu') } android { compileSdkVersion 18 buildToolsVersion "18.0.1" 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') debug.setRoot('build-types/debug') release.setRoot('build-types/release') } }
ThirdParty / SlidingMenu – > build.gradle包含以下内容:
apply plugin: 'android-library' dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 18 buildToolsVersion "18.0.1" sourceSets { main { ...... ...... } }
你不能在buildscript
块中有compile
依赖,只有classpath
依赖。 你也不能在那里有项目依赖。 你可能只需要摆脱这两行。