Androidプロジェクト依存関係が働いていません
-
21-12-2019 - |
質問
私はMavenからAndroidプロジェクトの卒業生に移行しようとしています。私は次の問題に直面しています。 私は3つのプロジェクトがあります
root
- projlib
build.gradle
- projA
build.gradle
- projB
build.gradle
build.gradle
settings.gradle
.
基本的に私が達成したいのは、ProjbがProjaとProjlibに依存することです。Projlibはlib(jar)ファイルをコンパイルして生成するlibフォルダです。ProjaはAndroidアプリケーションであり、ProjbはProjaでコードを参照する必要があるもう1つのAndroidアプリケーションです。現在Projb Build.Gradleファイルに追加したものは
です。dependencies {
compile project(':projlib')
compile project(':projA')
}
.
だからクラスがある場合 Projlibのfooprojlibと Proja
のFooprojaProjbで私はできる
FooProjLib foo = new FooProjLib
.
どの機能をうまく機能します
しかし私がしたとき
FooProjA foo = new FooProjA
.
gradleは私にパッケージProjaが存在しません。
誰もがこれを解決する方法を考えていますか?
解決
あなたはあなたが望むものを正確にすることはできません。Projaはアプリケーションを構築することはできません(すなわちAPK)、また他のことはそれに依存しています。ProjaはProjaに依存できますProjaがAndroidライブラリである場合、この宣言を持つビルドファイルでは、この宣言があります。
apply plugin: 'android-library'
.
の代わりにp>
apply plugin: 'android'
.
もちろん、これはProjaがAPKを構築しないことを意味しますが、代わりにAARを構築します。
ProjaもAPKになる必要がある場合は、Projbが必要とするプロジャーにある一般的なコードが共有ライブラリに移動されるように事実を再構築する必要があります。両方のプロジェクトが似ている場合は、おそらくそれらのためのモジュールを1つだけ持ち、プロジェクトフレーバーを使用してそれらを区別することができます。これがもっと多くの情報なしで良いアプローチであるかどうかを言うのは難しいです。