質問

私は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

のFooproja

Projbで私はできる

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つだけ持ち、プロジェクトフレーバーを使用してそれらを区別することができます。これがもっと多くの情報なしで良いアプローチであるかどうかを言うのは難しいです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top