私のアプリの広告なし版に対して計画しています。私はすでに2つのアプリのフレーバーを設定しています。アプリの1つのバージョンにのみ広告を表示する方法
<com.google.android.gms.ads.AdView
android:id="@+id/admob_adview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_footer" />
そしてコードで、チュートリアルは言う:
public class MainActivity extends AppCompatActivity {
private AdView mAdMobAdView;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAdMobAdView = (AdView) findViewById(R.id.admob_adview);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("4DD0986B8BB49093161F4F00CF61B887")// Add your real device id here
.build();
mAdMobAdView.loadAd(adRequest);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), ActivityTwo.class));
}
});
}
}
しかし、もし私のXMLで
、この AdMob tutorialは私がバナー広告を保持するために、私の活動のXMLにこれを追加すると言いますこの広告を1つのフレーバーと他のフレーバーで表示したいだけですが、ルールに違反することなくこれを処理する正しい方法は何ですか?通常のフレーバーは、私は単に私の活動の中に上記のif文でadRequest
コードを置く
if (BuildConfig.FLAVOR.equals("adfree")) {
//no ads
}
else {
//show ads
}
のようなものを経由してチェックされますか?広告なしのバージョンの場合、AdView
が依然として自分のXML内にあるかどうか、またはAdView
を削除して別のXMLコピーを使用する必要がありますか?
「adCompile」とは何ですか?私はGoogleでこれを見ていません – KaliMa
@KaliMa: 'compile'の前に任意のビルドタイプ、プロダクトフレーバー、またはビルドバリアントを付けて、コンパイルの対象をそのターゲットに限定することができます。したがって、 'ad'という製品風味の場合、' adCompile'はその依存関係を 'ad'製品フレーバーに限定し、他の製品フレーバーではスキップされます。 [ドキュメント](https://developer.android.com/studio/build/build-variants.html#dependencies)を参照してください。 – CommonsWare
'adfree/src/res/layout'と言うと、私は' app/src/'しかないようです(メインの' src'フォルダは1つだけです)。手動でフォルダを追加する必要がありますか?他のファイルは?私が例を見ることができるドキュメンテーションの名前はありますか? – KaliMa