启用 ProGuard 后 AdMob 横幅为空白

AdMob banner is blank with ProGuard enabled

我已将 AdMob(320x50 横幅)添加到我的项目中,并在调试模式下成功测试了它。对于生产构建,我启用了 ProGuard 混淆并且横幅消失了。 我试过使用这些 ProGuard 规则,但它不会影响:

-keep public class com.google.android.gms.ads.** {
   public *;
}

-keep public class com.google.ads.** {
   public *;
}

我在我的应用程序 class 中初始化 AdMob,例如:

MobileAds.initialize(getApplicationContext(), getString(R.string.banner_ad_id));

在 xml 布局中我放置横幅:

<com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:visibility="gone"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>

之后,我以这种方式加载横幅:

AdView adMobView = (AdView) bannerLayout.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adMobView.loadAd(adRequest);

此外,我正在使用第二个广告提供商 (adtech) 并根据条件使用他们的可见性。 知道如何让它们可见吗?

最后,我找到了我的问题所在 - 我不应该将 AdView 的初始可见性参数设置为 GONE。即使我已经以编程方式将它更改为 VISIBLE - 它在签名的 apk 中不起作用(仍然是个谜)。