我一直在忙于阅读大量文档和教程,以弄清楚如何在我的游戏中实现AdMob,但到目前为止还算运气。

LibGDX Wiki文档有些过时,并且某些代码根本不起作用-> link

f.e. initializeForView不再接受布尔值,或者adView方法不能再这样使用:

View gameView = initializeForView(new HelloWorld(this), false);


.... 要么

// Create and setup the AdMob view




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




我还研究了Google AdMob文档enter link description here,但它不适用于LibGDX项目。
我什至尝试不使用libgdx使其与AndroidStudio一起运行,但是即使如此,我也没有相应地工作。

我尝试解决此问题,但是经过一整天的尝试,在设备上进行调试时,我仍然无法在android设备上获得任何测试广告,并且非常欢迎您提供任何帮助。

有人可以帮我弄这个吗?
有人知道更多有关如何在libgdx项目中设置AdMob的最新信息吗?



这是我的AndroidManifest.xml的样子:[url = http://www.java-gaming.org/index.php?action=pastebin&hex=f9d35261d1111[/url]

这是我的AndroidLauncher.java的一个版本,我希望向我展示一些添加的内容,但事实并非如此:[url = http://www.java-gaming.org/?action=pastebin&id=1113[/url]

最佳答案

Here's the updated guide关于使用Google Play服务在libgdx游戏中设置admob标语和插页式广告。

保持标语显示的一种更简单的方法是设置其背景。

adMobView.setBackgroundColor(Color.BLACK);


您可以按以下文档中的说明修改代码:

@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = false;
    cfg.useAccelerometer = false;
    cfg.useCompass = false;

    // Do the stuff that initialize() would do for you
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

    RelativeLayout layout = new RelativeLayout(this);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
    layout.setLayoutParams(params);

    AdView admobView = createAdView();
    layout.addView(admobView);
    View gameView = createGameView(cfg);
    layout.addView(gameView);

    setContentView(layout);
    startAdvertising(admobView);
  }

  private AdView createAdView() {
    adView = new AdView(this);
    adView.setAdSize(AdSize.SMART_BANNER);
    adView.setAdUnitId(AD_UNIT_ID);
    adView.setId(12345); // this is an arbitrary id, allows for relative positioning in createGameView()
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
    adView.setLayoutParams(params);
    adView.setBackgroundColor(Color.BLACK);
    return adView;
  }

  private View createGameView(AndroidApplicationConfiguration cfg) {
    gameView = initializeForView(new AdTutorial(), cfg);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.BELOW, adView.getId());
    gameView.setLayoutParams(params);
    return gameView;
  }

  private void startAdvertising(AdView adView) {
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
  }

  @Override
  public void onResume() {
    super.onResume();
    if (adView != null) adView.resume();
  }

  @Override
  public void onPause() {
    if (adView != null) adView.pause();
    super.onPause();
  }

  @Override
  public void onDestroy() {
    if (adView != null) adView.destroy();
    super.onDestroy();
  }

关于java - libGDX:尝试实现AdMob,但无法使其正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26408277/

10-11 03:44
查看更多