2014-10-16 2 views
0

Я был занят просмотром кучи документации и учебников, чтобы выяснить, как реализовать AdMob в моей игре, но пока не повезло.libGDX: Попытка реализовать AdMob, но не может заставить его работать

вики документация LibGDX немного устарела и часть кода просто не работает -> 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, но это не " t очень хорошо подходит для проекта LibGDX. Я даже попробовал просто запустить его с AndroidStudio без использования libgdx, но даже я не смог работать соответствующим образом.

Я попытался обойти это, но после целого дня попыток я все еще не смог получить тестовые объявления на своем устройстве Android при отладке на своем устройстве & любая помощь была бы более чем приветствуется.

Может кто-нибудь мне помочь? Кто-нибудь знает более подробную информацию о том, как настроить AdMob в проекте libgdx?


Вот что мой 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]

+0

Где/Когда вы называете 'showAds (логическое шоу)' метод в AndroidLauncher? – donfuxx

+0

Хорошая точка. Однако есть проблемы с кодом. Я использовал предложения Наны Гарти в сообщении ниже, и это заставило его работать на меня. –

ответ

1

Here's the updated guide о настройке баннера admob и межстраничных объявлений в игре libgdx с использованием сервисов Google Play.

Простейший способ сохранить отображаемый баннер - установить его фон.

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(); 
    } 
+0

Да! Получил это, чтобы работать наконец.Благодарю. Небольшие детали: @ cfg.useGL20 = false; AndroidApplicationConfiguration больше не использует методGL20 & AS сообщает об ошибке «ожидаемый ресурс типа id»: adView.setId (12345); Код работает, и я должен установить идентификатор, чтобы показывать рекламный баннер. –

+0

Да! 12345 - всего лишь фиктивный идентификатор. Вы должны заменить его своим adobit id. Пожалуйста, примите ответ, чтобы помочь тем, у кого есть подобные проблемы, найти его. Спасибо –

+0

Позаботился об этом. Я связываю этот пост с форумом JGO, если у кого-то есть подобные проблемы. Спасибо, что потратили время на помощь –

0

Вы должны проверить/опубликовать свой логарифм для любых журналов, связанных с Admob.

Во всяком случае, я наткнулся на что-то вроде вашей проблемы некоторое время назад, и решить ее, делая фон AdView прозрачным:

adView.setBackgroundColor(Color.TRANSPARENT);

Не знаю причину, почему он работал.

Смежные вопросы