Несмотря на то, что мой код кажется очень простым, у меня есть очень странное явление, из-за которого мои баннеры иногда не показываются. Проблема в том, что видимость 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, это может быть причиной?
Кто-нибудь, кто сталкивался с этой ошибкой раньше или есть идеи, пожалуйста?