問題タブ [android-sourcesets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
580 参照

android - まったく同じ構成を持つ多くの sourceSet のいくつかをグループ化する

私が次のものを持っているとしましょうsourceSets

あなたが気づいて同じsrcDirsを持っているなら、そしてflavor1そうです。flavor3flavor2flavor4


可能性を試す#1

次のようなものを使用して冗長性を回避する方法があるかどうかを調べようとしていました。

上記は機能しません(すでに試しました)。sourceDirs一連のフレーバーに共通のセットを提供できるように、似たようなものを探しています。誰かが似たようなことを試してみて、いくつかの指針を提供できますか?


可能性を試す#2

の名前はフレーバーの名前sourceSetsと同じである必要がありますか?

sourceSets個別に名前を付けて、productFlavorsこのようにマッピングできますか?


可能性を試す#3

同じことを達成するために、どうにかしてタスクを介してソースセットを動的に割り当てることはできますか?


アップデート

ダグラスの答えは、最終的に探していたものに非常に近づくのに役立ちました(build.gradleのコードを減らします)。彼は上記の可能性 #3 を使用しました。ありがとうダグラス!賞金稼ぎからのより良い代替手段は引き続き歓迎されます (上記の可能性 #1 と #2 に近いもの)。何も起こらない場合、私が彼の答えを受け入れたので、賞金は期間が終了したときにすでにダグラスのものです. しかし、より良い代替案を見つけることについては楽観的です。

0 投票する
0 に答える
656 参照

android - 「productFlavors」と「sourceSets」に「initWith」を使用してコンストラクターをコピーする

この回答を参照してください。リンクされた回答と同じようにproductFlavorsコピーコンストラクターを作成して使用することは可能ですかsourceSets? initWithそれはbuildTypes.

それはこのbuildTypesように行われたからです:

productFlavorsこれは可能sourceSetsですか?

0 投票する
1 に答える
494 参照

android - Android Studio の 2 つの異なるプロジェクトで同じファイル Java クラスを使用する方法

ProjectAProjectBSharedClass.javaの 2 つのプロジェクトでクラスを使用する必要があり、のコードを変更する場合は、他のプロジェクトでも変更する必要があります。SharedClass

0 投票する
1 に答える
1956 参照

android - 製品フレーバー、ソース セット。ファイルを除く - android studio

4 つの製品フレーバーを持つアプリがあります。は次のbuild.gradleようになります。

フレーバーのソースセットを追加し、特定のフレーバーごとにいくつかのファイルを追加しました。

さらに、flavor1 でメインの sourceSet から除外するファイルを指定したいと考えました。

メインのsourceSetで除外するファイルmain/java/com/example/testing/はそこにあります

  • file1.java
  • file2.java
  • file3.java
  • file4.java

各フレーバーで、これらから 1 つのファイルを除外したいと思います。しかし、私はフレーバーが残りのすべてを持っていることを望んでいます。例:

フレーバー 1 には、file2、file3、file4 が含まれている必要があります。

falvor2 には、file1、file3、file4 が必要です。

ご覧のとおり、ファイルはほとんどのフレーバーで共有されているため、それらすべてをフレーバーに入れたくありません。コードのレプリカになり、すべてのファイルのすべての変更をすべての異なるフレーバー ファイルに適用する必要があるからです。

私はこれを見ました:

しかし、それは私にはうまくいきません。私はそれを把握することはできません。

ありがとう }

0 投票する
1 に答える
573 参照

android - フレーバー ディメンションのソース コード

約 30 の製品フレーバーを含むプロジェクトがあります。これらの製品フレーバーの一部は、コードを共有する必要がありますが、ほとんどの製品フレーバーと共有する必要はありません。コードをフレーバー グループに割り当てることはできますか?