我公司开发的Android应用程序,我使用了AdMob的SDK 6.2.1显示广告,而当我测试的应用程序我真正的设备上,并在模拟器上,广告的展示。 但是当我申请亲卫队,以我的应用程序并对其进行测试我的设备上(我测试了另一种设备也可以)的广告没有显示了,任何帮助,请!
Answer 1:
添加到您的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
Answer 2:
从文档 :
安全使用ProGuard和谷歌移动广告,以下内容添加到您的ProGuard配置:
-keep public class com.google.android.gms.ads.** {
public *;
}
-keep public class com.google.ads.** {
public *;
}
这将防止混淆公共类的所有公共方法。
如果您使用AdMob中介与其他广告网络,就应该避免在公共类SDK和适配器库以及公共方法。
Answer 3:
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;
}
-dontwarn com.google.common.base.**
-keep class com.google.common.base.** {*;}
-dontwarn com.google.errorprone.annotations.**
-keep class com.google.errorprone.annotations.** {*;}
-dontwarn com.google.j2objc.annotations.**
-keep class com.google.j2objc.annotations.** { *; }
-dontwarn java.lang.ClassValue
-keep class java.lang.ClassValue { *; }
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; }
文章来源: admob ads are not shown with pro guard