在启用ProGuard的情况下,AdMob横幅为空

时间:2017-04-21 21:38:16

标签: android firebase admob proguard

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

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

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

我在我的Application类中初始化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)并根据条件发挥其可见性。 知道如何让它们可见吗?

1 个答案:

答案 0 :(得分:0)

最后,我发现我的问题出在哪里 - 我不应该将AdView的初始可见性参数设置为GONE。即便通过我已经以编程方式将其更改为VISIBLE - 它在签名的apk中也不起作用(仍然是一个谜)。