我开发了 android 应用程序并使用 admob sdk 6.2.1 来显示广告,当我在我的真实设备和模拟器上测试该应用程序时,会显示广告。但是当我对我的应用程序应用 pro Guard 并在我的设备上进行测试时(我也在其他设备上测试过)广告没有出现,请帮忙!
问问题
9550 次
3 回答
15
将此添加到您的proguard:
-keep class com.google.ads.** # Don't proguard AdMob classes
-dontwarn com.google.ads.** # Temporary workaround for v6.2.1. It gives a warning that you can ignore
编辑 2020:
一段时间以来,Google 移动广告 SDK 已经发布了自己的 proguard 规则,这些规则将清单合并到您的应用程序中,因此您无需自己添加任何内容。合并的规则还保留了来自第三方中介适配器的方法,这些方法是使中介工作所需的。
于 2012-11-12T18:58:23.857 回答
11
从文档:
要在 Google 移动广告中安全使用 ProGuard,请将以下内容添加到您的 ProGuard 配置中:
-keep public class com.google.android.gms.ads.** {
public *;
}
-keep public class com.google.ads.** {
public *;
}
这将防止公共类上的所有公共方法被混淆。
如果您将 AdMob 中介与其他广告网络一起使用,则还应为每个 SDK 和适配器库保留来自公共类的公共方法。
于 2013-12-13T21:52:13.537 回答
1
Android 中 Admob 的 Proguard 规则
-keep public class com.google.android.gms.ads.**{
public *;
}
# For old ads classes
-keep public class com.google.ads.**{
public *;
}
# For mediation
-keepattributes *Annotation*
# Other required classes for Google Play Services
# Read more at http://developer.android.com/google/play-services/setup.html
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
于 2019-02-18T11:00:22.433 回答