启用 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 中不起作用(仍然是个谜)。
我已将 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 中不起作用(仍然是个谜)。