質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

3509閲覧

Android Studio マルチプロジェクトでUnable to resolve dependency

Tera2001

総合スコア6

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/03/08 23:23

編集2020/03/09 06:17

前提・実現したいこと

Andrriud Studioにてメインプロジェクト、モジュールプロジェクトから成る、
マルチプロジェクト環境を構築したいと思っています。

サンプルのため、下記フォルダ構成で、
プロジェクトをAndroid Studioから新規作成しました。
それぞれのBuildは問題なく終了します。

AndroidStudioProjects - MyApplication - app - settings.gradle - build.gradle   ・   ・ - MyModule - app - settings.gradle - build.gradle   ・   ・

発生している問題・エラーメッセージ

1.MyModuleプロジェクトを新規作成
→ No activityで作成し、その後モジュール化
apply plugin: 'com.android.application'apply plugin: 'com.android.library'

2.MyApplicationのsetting.gradleにMyModuleプロジェクトへの参照追記

rootProject.name='My Application' include ':app',':module' project(':module').projectDir = file('../../MyModule')

3.MyApplicationのbuild.gradleにMyModuleプロジェクトへの依存追記

dependencies {    ・    ・ implementation project(':module') }

4.MyApplicationにてGradle Syncを実行すると下記エラーとなる

  • Syncエラーメッセージ
ERROR: Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :module. Show Details Affected Modules: app
  • Buildエラーメッセージ
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'. > Could not resolve all task dependencies for configuration ':app:debugCompileClasspath'. > Could not resolve project :MyModule:module. Required by: project :app > Unable to find a matching configuration of project :MyModule:module: - None of the consumable configurations have attributes.

該当のソースコード

setting.gradle(MyApplication)

rootProject.name='My Application' include ':app' include ':MyModule' project(':MyModule').projectDir = new File(settingsDir, '../MyModule/') include ':MyModule:module'

build.gradle(MyApplication)

apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfig { applicationId "com.example.myapplication" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } // To inline the bytecode built with JVM target 1.8 into // bytecode that is being built with JVM target 1.6. (e.g. navArgs) compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.core:core-ktx:1.0.2' implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.navigation:navigation-fragment-ktx:2.0.0' implementation 'androidx.navigation:navigation-ui-ktx:2.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation project(path: ':MyModule:module') // この行を追加 }

build.gradle(MyModule)

apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfig { minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.2.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' }

試したこと

  • 依存関係の追記
    ここを参照して'matchingFallbacks'の追記

  → 効果なし

  • 'implementation project(':module')'を依存関係が伝搬しない'api project(':module')'に変更

  → 効果なし

新規にプロジェクトを作成して試してみても同じエラーが発生するため、
自分の方法が根本的にどこか間違っていると思うのですが、いいアイデアが見つかりません。

補足情報(FW/ツールのバージョンなど)

開発マシン:Mac book pro
Android studio:3.6.1
Gradle version:5.6.4

Project structure dependancy
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一つのプロジェクトに app と module を同居させるのではなく、別々のプロジェクトにしたいのであれば、settings.gradle と app/build.gradle にそれぞれ以下のように追加すればいいようです。

settings.gradle に次の 3 行を追加。

include ':MyModule' project(':MyModule').projectDir = new File(settingsDir, '../MyModule/') include ':MyModule:app'

app/build.gradle に依存関係を追加。

dependencies { implementation project(path: ':MyModule:app') // この行を追加 }

参考: Android studio project dependency (non-Module) | Develop Paper

投稿2020/03/09 01:47

編集2020/03/09 06:39
hoshi-takanori

総合スコア7895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tera2001

2020/03/09 06:17

hoshi-takanoriさん。 早速のご丁寧な回答ありがとうございました。 ご提示いただいた方法でsettingGradle、app/build.gradleを更新してみましたが、 残念ながら、やはり同じエラーが出力されます。 ご参考に掲示いただいたURL先には、 imlファイルについて削除する方法も載せられていて試したのですが、 やはり同じエラーが出ている状況です。 hoshi-takanoriさんの内容で、質問に掲載したコードを修正しました。
hoshi-takanori

2020/03/09 06:38

あ、MyModule のライブラリモジュールも app という名前なんですね。でしたら settings.gradle と app/build.gradle の ':MyModule:module' は ':MyModule:app' にするとよいでしょう。
Tera2001

2020/03/10 04:51

hoshi-takanoriさん。 Syng Gradle、Build共に成功しました!! 依存関係の認識不足でした。 ご指摘本当にありがとうございました。ベストアンサーとさせていただきますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問