2013-10-09 41 views
8

当我尝试从终端./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) 

我曾试过把根构建应用Java插件。 gradle文件和子项目。但仍然有同样的错误。

我有以下项目结构:

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 - >构建.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') 
} 
} 

第三方/ SlidingMenu - >的build.gradle包含以下内容:

apply plugin: 'android-library' 
dependencies { 
compile fileTree(dir: 'libs', include: '*.jar') 
} 

android { 
compileSdkVersion 18 
buildToolsVersion "18.0.1" 

sourceSets { 
    main { 
     ...... 
     ...... 

    } 
} 

回答

9

你不能在buildscriptcompile的依赖,只有classpath依赖。你也不能在那里有项目依赖。你可能只需要摆脱这两条线。

+0

如果我删除这些行并只保留类路径。我得到以下错误:失败:无法确定执行哪些任务。 *问题出在哪里: 在根项目'ProjectRepos'中找不到任务'build.gradle'。 – user2506411

+0

这意味着你已经超越了前面的问题。你需要调用'./gradlew build',而不是'./gradlew build.gradle'。我建议学习[Gradle用户指南](http://gradle.org/docs/current/userguide/userguide_single.html)的前几章,这将使您在使用Gradle时更加成功。 –

+0

Peter - ./gradlew build解决了所有错误。感谢帮助。 – user2506411