私はMonoGameで数ヶ月間ゲームを開発していましたが、数日前にリリースしました。今、私はAdMobを正しく動作させるようにしていますので、アプリの無料ライト版をリリースすることができます。私はAndroidレイアウトの初心者なので、何をしているのか分かりません。Xamarin/MonogameでAndroidアプリの画面下部にAdMob広告を表示するにはどうすればよいですか?
MonoGameでAdMobを実装する方法についてウェブを精査した後、アプリ内に広告を表示することができましたが、アプリは常に画面の上部に表示されます。 MonoGame/Xamarinを使って広告を再配置することについての情報はほとんど見つかりませんでした。ここで
は動作するコードで、画面の上部に広告が表示されます。
Activity1.cs:
public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
{
internal View adView = null;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Game1.Activity = this;
var g = new Game1();
FrameLayout fl = new FrameLayout(this);
fl.AddView(g.Window);
adView = AdMobHelper.CreateAdView(this, "<my id here>");
var layoutParams = new ViewGroup.LayoutParams(Android.Views.ViewGroup.LayoutParams.FillParent, Android.Views.ViewGroup.LayoutParams.WrapContent);
fl.AddView(adView, layoutParams);
SetContentView(fl);
AdMobHelper.RequestFreshAd(adView);
g.Run();
}
}
これは、追加のレイアウトなしで動作します。
Activity1.cs:
public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
{
internal View adView = null;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Game1.Activity = this;
var g = new Game1();
SetContentView(Resource.Layout.Main);
View gameView = FindViewById(Resource.Id.GameView);
ViewGroup parent = (ViewGroup)gameView.Parent;
int index = parent.IndexOfChild(gameView);
parent.RemoveView(gameView);
parent.AddView(g.Window, index);
adView = FindViewById(Resource.Id.Ad);
parent = (ViewGroup)adView.Parent;
index = parent.IndexOfChild(adView);
parent.RemoveView(adView);
var layoutParams = adView.LayoutParameters;
adView = AdMobHelper.CreateAdView(this, "<my id here>");
adView.LayoutParameters = layoutParams;
parent.AddView(adView, index);
AdMobHelper.RequestFreshAd(adView);
g.Run();
}
}
そして、私の追加Main.axmlファイル:しかし
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView
android:id="@+id/GameView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<com.google.ads.AdView
android:id="@+id/Ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom" />
</FrameLayout>
、今、ここで私は、トピックをカバーするいくつかのウェブサイトから同化したコードです私がこれを実行すると、 "SetContentView(Resource.Layout.Main);という行でクラッシュします。 Activity1.csにあります。 Visual Studioにエラーが表示されます:
Unhandled Exception:
Android.Views.InflateException: Binary XML file line #1: Error inflating class com.admob.android.ads.AdView
エラー出力ウィンドウには何も確認する必要はありません。理想的には、私はちょうど私のアプリの下部に表示するこのadmob広告を取得したいと思います。ありがとう!
リンクが壊れている –