gpt4 book ai didi

android - 如何在最新的 MonoGame Android (XNA) 中集成 AdMob 广告?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:21 25 4
gpt4 key购买 nike

过去几天我一直在研究针对 MonoGame Android 的 AdMob 集成,但到目前为止还未能成功地为我刚刚制作的游戏添加横幅。到目前为止,我找到的所有答案都非常过时,而且我找到的所有示例都无法在最新的 Android API 中运行。

我在 Visual Studio 中使用 MonoGame 3.2 的开发版本 #983。

我试过:

以及在 Internet 上找到的其他方法。在向项目添加 JAVA 源和 JAR 文件时,我一直非常小心地选择正确的构建选项,但我从未找到任何 AdView 类,并且不再有“Google Mobile Ads SDK v6.4.1”JAR由谷歌支持,如下所述:https://developers.google.com/mobile-ads-sdk/

如果有人有任何新的和最新的方法将 AdMob 广告集成到 MonoGame Android 项目中,我认为答案需要刷新(我将非常感激)=)

最佳答案

经过很长时间的寻找答案并测试了多种建议,我终于找到了解决方案。

Xamarin 有一个 Google Play 服务组件,可以从组件商店下载。我最初尝试过这个,但是我在 VS2012 中的解决方案文件遇到了问题。所以这就是我手动添加组件所做的:

  • https://components.xamarin.com/view/googleplayservices/登录并下载组件

  • 在您的 Android 解决方案中创建一个名为“lib”的文件夹,并将压缩组件文件夹中的 dll 文件解压缩到该文件夹​​中

  • 将 dll 文件添加为对项目的引用。您现在应该添加了这四个引用:

    1. GooglePlayServicesLib
    2. Xamarin.Android.Support.v4
    3. Xamarin.Android.Support.v7.AppCompat
    4. Xamarin.Android.Support.v7.MediaRouter
  • 导航到您的项目属性,单击“应用程序”选项卡(第一个)并在“Java 最大堆大小”下键入 1G(否则在编译时会出现 Java 堆内存不足错误)

  • 确保您的应用设置为使用 API 14 或更高版本 (Android 4.0)。这也可以通过项目属性页面完成

  • 在您的 AndroidManifest.xml 文件中,确保您具有以下内容:

    <activity 
    android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
  • 获取您的 AdMob 单元 ID

  • 将您的 Activity.cs 文件更改为如下内容:

    using Android.Gms.Ads; // Add this include

    // Easy constants
    private const string AD_UNIT_ID = "YOUR_AD_ID";
    private const string TEST_DEVICE_ID = "YOUR_DEVICE_ID";
    private AdView adView;

    // Change OnCreate and make sure you're not trying to set SetContentView()
    // more than once
    protected override void OnCreate(Bundle bundle)
    {
    base.OnCreate(bundle);
    Puzzle.ARunningMan.Activity = this;
    var g = new Puzzle.ARunningMan();

    createAds(g.Window);

    g.Run();
    }

    // Wrapped everything in a function for less confusion.
    // Thanks to Dylan Wilson at Craftwork Games for the
    // simple layout
    private void createAds(AndroidGameWindow window)
    {
    var frameLayout = new FrameLayout(this);
    var linearLayout = new LinearLayout(this);

    linearLayout.Orientation = Orientation.Horizontal;
    linearLayout.SetGravity(Android.Views.GravityFlags.Right | Android.Views.GravityFlags.Bottom);

    frameLayout.AddView(window);

    adView = new AdView(this);
    adView.AdUnitId = AD_UNIT_ID;
    adView.AdSize = AdSize.Banner;

    linearLayout.AddView(adView);
    frameLayout.AddView(linearLayout);
    SetContentView(frameLayout);

    try
    {
    // Initiate a generic request.
    var adRequest = new AdRequest.Builder()
    .AddTestDevice(AdRequest.DeviceIdEmulator)
    .AddTestDevice(TEST_DEVICE_ID)
    .Build();

    // Load the adView with the ad request.
    adView.LoadAd(adRequest);
    }
    catch (Exception ex)
    {
    // your error logging goes here
    }
    }
  • 编译(一开始需要一点时间),运行它,在 LogCat 窗口中查找一条标记为“ads”的消息,其中包含您的设备 ID。更多信息在这里:http://webtutsdepot.com/2011/12/02/android-sdk-tutorial-get-admob-test-device-id/

  • 设置设备ID字符串,重新编译,运行

最后,如果您等待大约 30-60 秒,您将看到一个测试添加显示为横幅。祝大家好运,我希望这对您有所帮助,因为它现在是当前信息

关于android - 如何在最新的 MonoGame Android (XNA) 中集成 AdMob 广告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com