【问题标题】:AdMob libGDX with Google Play servicesAdMob libGDX 与 Google Play 服务
【发布时间】:2014-04-03 23:12:23
【问题描述】:

在过去的几天里,谷歌正在强制使用 Google Play Services 移动广告作为 android adMob 的下一个版本。我对 admob 完全陌生,正在尝试在我的 libGDX android 游戏中测试广告,但无法弄清楚如何去做,因为无论我做什么,我都会遇到大量错误。我看过其他示例,但它们都适用于现在被视为旧版的 adMob 6.4.1(或更早版本)。我只想在屏幕底部放置一个广告横幅,但不知道该怎么做。有人可以发布我的 android MainActivity 需要什么以及我需要对清单和 xml 做的任何事情。

它需要与 libGDX 一起工作,但是视图系统会与之合作

非常感谢!

【问题讨论】:

  • 你遇到了什么错误?

标签: java android libgdx admob google-play-services


【解决方案1】:

在此处关注official guide 迁移到新的 admob。然后按照admob in libgdx wiki guide 完成迁移。这真的很简单。

您需要在 MainActivity 类中进行的更改是:

换行:

 AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxx"); // Put in your secret key here
      adView.loadAd(new AdRequest());

到:

AdView adView = new AdView(activity);
adView.setAdUnitId("xxxxxxx");
adView.setAdSize(AdSize.BANNER);
adView.loadAd(new AdRequest.Builder()
.build());

另外,由于您希望广告出现在屏幕底部,请按如下方式修改 adParams:

RelativeLayout.LayoutParams adParams = 
            new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
        adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);

在你的清单文件中,

变化:

<activity android:name="com.google.ads.AdActivity"/>

到:

<activity android:name="com.google.android.gms.ads.AdActivity" 
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>`

<meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version"/>

您无需在 xml 布局中定义广告视图,因为它已经在 MainActivity 类中以编程方式完成。您还可以实现 AdListener 来监听广告回调。

【讨论】:

    【解决方案2】:

    请按照google官网的说明进行操作

    https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals

    在 MainActivity.java 中添加这些行

      /** The view to show the ad. */
      private AdView adView;
    
      /* Your ad unit id. Replace with your actual ad unit id. */
      private static final String AD_UNIT_ID = "INSERT_YOUR_AD_UNIT_ID_HERE";
    

    在 Activity OnCreate 上添加这些行。

        adView = new AdView(this);
        adView.setAdSize(AdSize.BANNER);
        adView.setAdUnitId(AD_UNIT_ID);
    
        // Add the AdView to the view hierarchy. The view will have no size
        // until the ad is loaded.
        LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
        layout.addView(adView);
    
        // Create an ad request. Check logcat output for the hashed device ID to
        // get test ads on a physical device.
        AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice("INSERT_YOUR_HASHED_DEVICE_ID_HERE")
            .build();
    
        // Start loading the ad in the background.
        adView.loadAd(adRequest);
    

    同时在 Manifest.xml 中添加几行

        <activity android:name="com.google.android.gms.ads.AdActivity"  
                                android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    
        <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    

    现在添加权限...

       <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
    

    别忘了将 google-play-services 添加为库项目。

    希望这会对你有所帮助。

    【讨论】:

      【解决方案3】:

      新的admob和旧的admob的区别就是那个关键..

      我使用了这个教程 https://code.google.com/p/libgdx/wiki/AdMobInLibgdx 并把我的新密钥和工作良好,我收到统计数据,点击次数等。

      我没有在我的应用中安装 google play 服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-12
        • 1970-01-01
        相关资源
        最近更新 更多