2013-10-09 5 views
8

Wenn ich versuche, ./gradlew build.gradle von Terminal zu laufen, ich habe folgende Fehler wurde immer:Gradle Fehler „Keine Unterschrift des Method“ kompiliert

> 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) 

Ich habe versucht, die Java-Plugin an root build Anwendung. Gradle-Datei und auch auf Unterprojekten. aber immer noch bekomme ich denselben Fehler.

Ich habe die folgende Projektstruktur:

ProjectRepos 
->build.gradle 
->settings.gradle 
->TestMobile (Android plugin) 
    ->build.gradle 
->ThirdParty/SlidingMenu (Android library) 
    ->build.gradle 

Wo Top-Level-build.gradle enthält:

// 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 enthält folgende:

include ':ThirdParty:SlidingMenu' 
include ':TestMobile' 

TestMobile -> Build .gradle enthält folgendes:

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 enthält folgende:

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

android { 
compileSdkVersion 18 
buildToolsVersion "18.0.1" 

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

    } 
} 

Antwort

9

Sie nicht compile Abhängigkeiten im buildscript Block, nur classpath Abhängigkeiten haben können. Außerdem können Sie dort keine Projektabhängigkeiten haben. Sie müssen wahrscheinlich nur diese zwei Zeilen loswerden.

+0

Wenn ich diese Zeilen entfernen und nur Klassenpfad beibehalten. Ich erhalte folgenden Fehler: FAILURE: Konnte nicht feststellen, welche Aufgaben ausgeführt werden. * Was schief gelaufen ist: Task 'build.gradle' nicht im Root-Projekt 'ProjectRepos' gefunden. – user2506411

+0

Dies bedeutet, dass Sie das frühere Problem überstanden haben. Sie müssen './gradlew build', nicht' ./gradlew build.gradle' aufrufen. Ich empfehle, die ersten Kapitel des [Gradle User Guide] (http://gradle.org/docs/current/userguide/userguide_single.html) zu studieren, was Sie bei Gradle erfolgreicher machen wird. –

+0

Peter - ./gradlew Build löste alle Fehler. Danke für die Hilfe. – user2506411