productFlavorsに関する技術的な質問があります。つまり、複数の同じアプリケーションがある場合、BuildVariantの選択に応じていくつかの具体的なクラス(たとえば1つだけのフレーバー)が選択されます。コンパイルしないでください。わかったよ。しかし、どのように共通のクラスのそれらを参照することができますか?なぜなら私が特別な味(このクラスを使用する)を選択しない限り、アプリケーション全体はコンパイルされないからです。 私のコードProductFlavors - 一部のクラスがコンパイルされない
...私は学生ですが、私は、全体のコードを探し、他のフレーバーのクラスを無効にするよりも、これで働く人々ということは、簡単な方法を持つべきだと思う
で私はこの検証
public boolean isPro() {
return "pro".equals(BuildConfig.FLAVOR);
}
作成し、このコード
を試してみてください一般的な活動でproductFlavors {
free {
applicationId "com.example.flavors.free"
}
pro {
applicationId "com.example.flavors.pro"
}
}
をgradle.build
if (isPro()) {
Toast.makeText(this, "Versão Pro", Toast.LENGTH_SHORT).show();
} else {
// startActivity(new Intent(getApplicationContext(), BannerActivity.class));
}
このBannerActivityは(無料の風味フォルダに作成)自由な風味のespecificである私は(プロの味の)他のBuilderVariantを使用する場合、私はこの活動を無効にしない場合、その後、全体のコードは動作しません。 (コンパイルしないでください)... 1つのアクティビティだけを無効にするのは簡単ですが、多くのアクティビティがある場合は?
ありがとうございます。
これは機能します。しかし、パッケージの名前はsrc/nameFlavor/packageNameで同じでなければなりません。もしこれらのpackageNameが異なっていれば、インポートも異なってくるのでコードもコンパイルされません。ありがとうございました。 – Anita