2016-08-16 5 views
0

私は2つのビルドフレーバーでAndroidアプリケーションを書いています。私はフレーバーとこのクラスの両方で同じ名前のクラスを使用しています。共通のコードで起動します。main/src/です。Flavorビルドのインポートクラスを更新するにはどうすればよいですか?

今、質問は、ビルドの味を選択すると、インポートクラスの参照を更新する方法はありますか!私はAndroid-studio settingについてアイデアを持っていますが、これは古いインポートを削除するまで機能しません。なにか提案を !!

+0

if else conditionのビルドタイプに基づいて、完全修飾クラスを使用できます。 – Pr38y

+1

私はあなたを正しく理解していれば、これらのクラスをさまざまなソースセットに入れました。したがって、構築するときには、適用されたフレーバのクラスを自動的に使用する必要があります。クラスを別のパッケージに入れましたか? – tynn

+0

私は回避策があります(より良い解決策があります)。フレーバーでは、異なる値のbuildConfigFieldを持つことができ、これに基づいて必要なインスタンスを作成できます。このようにして、輸入品に触れる必要はありません。ここでは、より良い解決策として依存性注入パターンが必要だと思います。 – Ramit

答えて

1

Android Studioのgradleプロジェクトには、アプリケーションをビルドするためのさまざまなソースセットを含めることができます。特に、すべてのビルドタイプとすべてのフレーバには独自のソースセットが定義されており、メインソースセットと自動的にマージされます。

異なるフレーバのインポートステートメントを変更することはできませんが、これらの異なるソースセットを使用して、同じクラスに対して異なる実装を使用することができます。これらのクラスをメインソースセットに入れるのではなく、相互排他的なソースセット、つまりdebugreleaseまたはflavor1flavor2に入れてください。

+0

私は同意します、シンプルでは、​​同じパッケージを風味に入れて同じ名前のクラスをそこに置く必要があります。 – CoDe

関連する問題