Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gradle compile error "No Signature of Method"

Tags:

When I try to run ./gradlew build.gradle from terminal, I have been getting following error:

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

I have tried applying java plugin at root build.gradle file and also on sub projects. but still I get same error.

I have the following project structure:

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

Where top level build.gradle contains:

// 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 contains following:

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

TestMobile -> build.gradle contains following:

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 contains following:

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

android {
compileSdkVersion 18
buildToolsVersion "18.0.1"

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

   }
 }
like image 695
user2506411 Avatar asked Oct 09 '13 18:10

user2506411


1 Answers

You can't have compile dependencies in the buildscript block, only classpath dependencies. Also you can't have project dependencies there. You probably just need to get rid of these two lines.

like image 135
Peter Niederwieser Avatar answered Oct 12 '22 02:10

Peter Niederwieser