2013-10-09 30 views
8

błąd, gdy próbuję uruchomić ./gradlew build.gradle od terminalu, byłem coraz następujący błąd:Gradle kompilacji „No Podpis metoda”

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

Próbowałem zastosowaniu wtyczki Java w głównym kompilacji. plik gradle, a także na podprojekty. ale wciąż dostaję ten sam błąd.

Mam następujące struktury projektu:

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

Gdzie najwyższym poziomie build.gradle zawiera:

// 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 zawiera następujące elementy:

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

TestMobile -> build .gradle zawiera:

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 zawiera następujące elementy:

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

android { 
compileSdkVersion 18 
buildToolsVersion "18.0.1" 

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

    } 
} 

Odpowiedz

9

Nie można mieć compile zależności w bloku buildscript, tylko classpath zależności. Nie możesz też mieć tam zależności projektu. Prawdopodobnie musisz po prostu pozbyć się tych dwóch linii.

+0

Jeśli usuniemy te linie i zachowam tylko ścieżkę klasy. Otrzymuję następujący błąd: AWARIA: Nie można ustalić, które zadania wykonać. * Co poszło nie tak: Zadanie "build.gradle" nie znaleziono w głównym projekcie 'ProjectRepos'. – user2506411

+0

Oznacza to, że minąłeś wcześniejszy problem. Musisz wywołać './gradlew build', a nie' ./gradlew build.gradle'. Polecam zapoznanie się z kilkoma rozdziałami [Podręcznika użytkownika Gradle] (http://gradle.org/docs/current/userguide/userguide_single.html), dzięki którym odniesiesz większy sukces z Gradle. –

+0

Peter - ./gradlew build rozwiązał wszystkie błędy. Dzięki za pomoc. – user2506411

Powiązane problemy