ターミナルから./gradlewbuild.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)
ルートbuild.gradleファイルとサブプロジェクトにJavaプラグインを適用しようとしましたが、それでも同じエラーが発生します。
私は次のプロジェクト構造を持っています:
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-> build.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')
}
}
ThirdParty/SlidingMenu-> build.gradleには次のものが含まれています。
apply plugin: 'Android-library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
Android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
sourceSets {
main {
......
......
}
}
compile
ブロックにbuildscript
依存関係を含めることはできず、classpath
依存関係のみを含めることができます。また、そこにプロジェクトの依存関係を持つことはできません。おそらく、これらの2行を取り除く必要があります。