gradle/eclipse-mars サブプロジェクトを追加した Hello World フルスクリーン Android Studio 1.5.1 アプリがあります。include ':javalib' を settings.gradle に追加したことを除いて、他のファイルは変更されていません。プロジェクト lib 依存関係の追加:
project(':app') {
dependencies {
compile project(':javalib') // line 23
}
}
ルート ビルド ビルド ファイルに移動し、コマンド ラインから gradle を実行すると、次のようになります。
場所: ビルド ファイル 'D:\AndroidStudioProjects\AndroidMain\build.gradle' 行: 23
問題: ルート プロジェクト 'AndroidMain' の評価中に問題が発生しました。
org.grad le.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@46 3ca82f で、引数 [プロジェクト ':javalib'] のメソッド compile() が見つかりませんでした。
Java プラグインをルート ビルド ファイルに追加しても役に立ちませんでした。
私はそれが間違った場所にあるとは思わない。
ルート プロジェクトと追加されたサブプロジェクトの両方に gradle ラッパーがあります。
任意のポインタをいただければ幸いです。
ありがとう
編集:明確にするために、ルートビルドファイルは次のとおりです。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
task hello << { task -> println "I'm $task.project.name" }
}
project(':app') {
dependencies {
//compile project(':javalib') // causes problems
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
アプリのビルド ファイルは次のとおりです。
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "acme.androidmain"
minSdkVersion 22
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//compile project(':javalib') // use :javalib:jar?
//testCompile project(':javalib')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
}
編集: この演習の全体的な目的は、コア Java コードを Android プロジェクトに組み込むことです。現在、コア コードはスタンドアロンの gradle/eclispe プロジェクトです。私はgradle -p standaloneprojectdir / jarを実行し、jarをlibs /にコピーしたAndroidプロジェクトのバッチを持っています。
これはすべて私のPCで行われるため、jarを公開してリポジトリから取得する以外に簡単な方法があると思います。
すべてのコードをライブにして、ビルドするだけでいいでしょう:(
編集: RaGeの提案に従って、ここに未使用の android studio プロジェクトと未使用の gradle/eclipse プロジェクトがあります。これらのファイルは編集されていません。受け入れることを選択した場合の使命は、Android アプリが Java プロジェクト クラスに簡単にアクセスできるようにすることです (つまり、MainActivity.onCreate() の new Library(); がコンパイルされて実行されます)。Java プロジェクトがどこにあるかは気にしません。理想的には、両方のソースが両方の ideでライブになります。
これを試みても失敗します。> :virginjavaproject が見つかりませんでしたが、ディレクトリは存在します。
編集:実際に機能したのは、処女のAndroidプロジェクトへのRaGeのプルリクエストでした。