2016-03-28 27 views

答えて

1

フレーバのファイルを指定できます。私があなたの場合は、次のようなことをします: main/java/your/packageソースにファイルを入れて、それをCustomClass.javaと呼ぶことができます。あなたは風味名のフォルダ(次のメインフォルダへ)でこのクラスの風味特定のバージョンを作成することができた後

public class CustomClass { 
    public static void myCustomMethod() { 
     //Do something here... 
    } 
} 

: それはこのようなものが含まれています。 だからここでCustomClass.javaを置く:your_flavor_name/java/your/package そして、何かを実行します。

public class CustomClass { 
     public static void myCustomMethod() { 
      //Do something here for that specific flavor! 
     } 
    } 

ビルドがファイルをマージし、あなたの味のために特定のものを使用して、何の味特定のファイルが見つからない場合は、メインのバージョンを使用します。あなたはドロウアブルとそれ以外のすべてのファイル(アセット、...)に使うことができます。

この後に新しいフレーバーを作成するだけで済みます。あなたのGradleでは、これを追加します。ここ

productFlavors { 
     your_flavor_name { 
      applicationId "your.package" 
     } 
} 

より多くの原料:http://developer.android.com/tools/building/configuring-gradle.html

0

が実際にあなたの答えの@GaborNovak

をありがとう、私は一般的なクラスのためにそのような何かを検索:

if("flavor-name".equals(getApplicationContext().getPackageName())){ 
       myIntent.setClass(thisClass.this, nextClass.class); 
      } 
      else { 
       myIntent.setClass(thisClass.this, nextClass.class); 
      } 

少し混乱していると思います。私がgetApplicationContext.getpackageName - >を書くと、選択されたフレーバーのapplication_idがビルドgradleで取得されます。 BuildConfig.APPLICATION_ID - >と書くと、パッケージ名が取得されます。その論理の背後で説明できる人はいますか?それは混乱しませんか?

0

別々2 product-flavorsのための2つのstring.xmlを定義し、それぞれに共通の名前の文字列を追加し、例えば、第1の香味のstring.xml<string name="flavor">Flavor One</string>を追加し、第2の香味のstring.xml<string name="flavor">Flavor Two</string>を加えます。このメソッドでは、文字列flavorの値を取得し、それに応じてコード行を追加します。 2つのフレーバーの場合、フレーバーのフレーバーには2つの異なる値があるためです。

0

productFlavorで何か()でクラスを作成します。

主な共通ソース:

main\java\com.exmaple.test\class.java - > something() 

Flavor1ソース:

flavor\java\com.exmaple.test\class.java - > something() 

Flavor2ソース:

flavor\java\com.exmaple.test\class.java - > something() 
関連する問題