私はこれが古い投稿であることを知っていますが、回答が得られていないので、他の誰かがこの投稿に出会った場合の遅れの方法を教えてください。
フレーバーでたくさんのことをすることができますが、あなたがしようとしていることは誰よりも簡単です。
まず、デバッグと実行のためのフレーバーを選択するビルドバリアントがあります。これを使うと、すべてのデバッグでデフォルトのメインリリースが使用されます。
第2に、パッケージ名を取得する必要はなく、ビルド設定フラグを使用するか、フレーバをチェックするだけです。 I.あなたがそれを必要な場所
BuildConfig.BUSINESS_ID
:
android {
signingConfigs {
releaseA35Demo {
storeFile file("$projectDir/../yaskeystore.jks")
storePassword System.getenv('YOUR_APP_STUDIO_STORE_PASSWORD')
keyAlias System.getenv('YOUR_APP_STUDIO_KEY_ALIAS')
keyPassword System.getenv('YOUR_APP_STUDIO_KEY_PASSWORD')
}
}
flavorDimensions 'default'
productFlavors {
a35Demo {
dimension 'default'
applicationId "com.appstudio35.yourappstudio"
buildConfigField "String", "SERVER_URL", '"http://fakeNumbers.compute-1.amazonaws.com:3006"'
buildConfigField "int", "BUSINESS_ID", "1"
versionCode 1
versionName "0.01.01-b1"
minSdkVersion 21
}
a35DemoDev {
dimension 'default'
applicationId "com.appstudio35.yourappstudio.dev"
buildConfigField "String", "SERVER_URL", '"http://fakeNumbers2.compute-1.amazonaws.com:3006"'
buildConfigField "int", "BUSINESS_ID", "2"
versionCode 1
versionName "0.01.01-b1"
minSdkVersion 21
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
productFlavors.a35Demo.signingConfig signingConfigs.releaseA35Demo
productFlavors.a35DemoDev.signingConfig signingConfigs.releaseA35Demo
}
}
}
そして、単にのようなコードでそれを参照します。 BuildConfigを自動インポートするときに、誤ってライブラリプロジェクトのBuildConfigを使用していないことを確認してください。
次の方法は、おいしさを確認したい場合は、 BuildConfig.FLAVORを実行して、どちらが現在表示されているかを確認することです。しかし、あなたがフレーバーをチェックしているために、コンパイラの警告があることに注意してください。BuildConfigは、Build Variantのドロップダウンリストのために常に現在のものであると仮定していますが、これは常に無視できますまたは常に誤った警告、私はそれが動作することを保証します。
最後に、あなたのパッケージは、デバッグしているビルドバリアントによって駆動されます。イメージを追加して、どこを変更するかを確認できます。
![enter image description here](https://i.stack.imgur.com/fc9Oh.png)
お役に立てば幸いです。
私が言う最後のことは、MainActivityが自動的に処理され、MainActivityのパッケージを管理する必要がないということです。それは、あなたがいるフレーバーにそれぞれのフレーバーを使用します。通常、フレーバーにファイルを移動すると、リリース風味とバリエーションがそれぞれのMainActivityを使用するようになります。あなたがやっていることはちょっとハッキリですが、それはうまくいくと思います。しかし、フレーバーツールにはその仕事を任せて、あなたのためにそれを起動することをお勧めします。
MainActivityをメインから削除して、それがあなたの2つの味の中にあることを確認してください。例えば、私は私のメインのアプリケーションフォルダやファイルを持っていない注意:今、まだそれにマニフェストのポイントを参照してください
![enter image description here](https://i.stack.imgur.com/R4FNR.png)
。
![enter image description here](https://i.stack.imgur.com/73HtA.png)
あなたは味がその仕事をやらせるのであれば、あなたは罰金になります。それをあなたのメインに残そうとするなら、紛争と警告に対処しなければなりません。
出典
2018-02-15 20:22:44
Sam
[こちらの質問](http://stackoverflow.com/questions/40858582/android-flavor-intent-activity)とどのように違うのですか? –
1つの可能性は、両方のアクティビティにいくつかのプライベートアクションのために ''を追加し、 'android:exported =" false "'を使用して、サードパーティアプリケーションがこれらのアクティビティを開始しないようにすることです。そして、そのアクション文字列を使って 'Intent'を使います。 –
CommonsWare
@Mike M.活動が明示的に呼び出されることはないので、プログアードによって取り除かれ、質問を押し上げるための賞金を払うことはできません。 – XxGoliathusxX