Видимость баннера AdMob иногда привязана к GONE и не будет отображаться - PullRequest
0 голосов
/ 17 марта 2019

Несмотря на то, что мой код кажется очень простым, у меня есть очень странное явление, из-за которого мои баннеры иногда не показываются. Проблема в том, что видимость AdView привязана к View.GONE и нельзя изменить на View.VISIBLE, независимо от того, сколько раз я звоню setVisibility(View.VISIBLE).

Вот мой код:

public class AndroidLauncher extends AndroidApplication {

    GameClass game;

    RelativeLayout layout;
    AdView bannerView;

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

        MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713"); // test APP ID

        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
        game = new GameClass(this);
//
//      // Create Layout that will call both Libgdx View and AdMod View
        layout = new RelativeLayout(this);
//
        // InitializeCommonRessources Libgdx View
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
//
        View gameView = initializeForView(game, config);
        layout.addView(gameView);

        // Tell Android to use this Layout
        setContentView(layout);

        SetupAdMobBanner();
    }

    public void SetupAdMobBanner() {
        bannerView = new AdView(this);

        bannerView.setAdListener(new AdListener() {

            @Override
            public void onAdOpened() {
                System.out.println("BANNER AD OPENED");
            }

            @Override
            public void onAdClosed() {
                System.out.println("onAdClosed / SETTING BANNER TO GONE AND PAUSING IT");
            }

            @Override
            public void onAdLeftApplication() {
                System.out.println("BANNER LEFT APP");
            }

            @Override
            public void onAdFailedToLoad(int var1) {
                System.out.println("BANNER FAILED TO LOAD : " + var1);
//              SetupAdMobBanner();
            }

            @Override
            public void onAdLoaded() {
                System.out.println("BANNER LOADED");
            }
        });

        bannerView.setAdSize(AdSize.BANNER);

        bannerView.setAdUnitId("ca-app-pub-3940256099942544/6300978111"); // Test banners

        RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        adParams.addRule(RelativeLayout.ALIGN_TOP);
        adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
        layout.addView(bannerView, adParams);

        loadBanner();
    }

    public void loadBanner() {
        System.out.println("BANNER loadAd(adRequest)");
        AdRequest adRequest = new AdRequest.Builder().build(); // Test ads for my Honor 7x
        bannerView.loadAd(adRequest);
    }
}

Самое странное, что иногда работает правильно. Баннер может отображаться правильно в течение нескольких дней или нескольких часов, и внезапно, если я ничего не сделаю, он перестанет работать и будет действовать, как описано ранее, привязанный к View.GONE.

Я пробовал пробную рекламу, живую рекламу, настраивал или не тестировал устройство, менял AdSize ... ничего не работает. Мое приложение в настоящее время проходит внутреннее тестирование в магазине Play Store, это может быть причиной?

Кто-нибудь, кто сталкивался с этой ошибкой раньше или есть идеи, пожалуйста?

...