簡體   English   中英

libGDX:嘗試實施AdMob,但無法使其正常工作

[英]libGDX: Trying to implement AdMob but can't get it to work

我一直在忙於閱讀大量文檔和教程,以弄清楚如何在我的游戲中實現AdMob,但到目前為止還算運氣。

LibGDX Wiki文檔有些過時,並且某些代碼根本無法正常工作->鏈接

fe 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文檔, 在此處輸入鏈接描述 ,但它不適用於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]

這是有關使用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();
  }

您應該檢查/發布您的logcat中是否有與Admob相關的日志。

無論如何,前段時間我遇到了類似您的問題的問題,並通過使adView背景透明來解決了該問題:

adView.setBackgroundColor(Color.TRANSPARENT);

不知道它起作用的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM