2013-10-09 14 views
8

Quando provo a fare funzionare build.gradle ./gradlew dal terminal, sono stato sempre seguente errore:Gradle Compilare l'errore "No Firma del metodo"

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

ho cercato di applicare plugin Java nella costruzione principale. file gradle e anche su sottoprogetti. ma ho ancora lo stesso errore.

Ho la seguente struttura del progetto:

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

Dove livello superiore build.gradle contiene:

// 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 contiene seguente:

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

TestMobile -> costruzione .gradle contiene quanto segue:

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 contiene seguente:

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

android { 
compileSdkVersion 18 
buildToolsVersion "18.0.1" 

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

    } 
} 

risposta

9

Non si può avere compile dipendenze nel blocco buildscript, solo classpath dipendenze. Inoltre non puoi avere dipendenze di progetto lì. Probabilmente hai solo bisogno di sbarazzarti di queste due linee.

+0

Se rimuovo quelle linee e mantengo solo il percorso della classe. Ricevo l'errore seguente: FAILURE: Impossibile determinare quali attività eseguire. * Cosa non ha funzionato: L'attività 'build.gradle' non è stata trovata nel progetto root 'ProjectRepos'. – user2506411

+0

Ciò significa che hai superato il problema precedente. Devi chiamare './gradlew build', non' ./gradlew build.gradle'. Raccomando di studiare i primi capitoli della [Guida dell'utente Gradle] (http://gradle.org/docs/current/userguide/userguide_single.html), che ti renderà più successo con Gradle. –

+0

Peter - ./gradlew build ha risolto tutti gli errori. Grazie per l'aiuto. – user2506411

Problemi correlati