adob广告不会与专业人员展示

时间:2012-11-12 13:09:16

标签: android admob proguard

我开发了Android应用程序,我使用了admob sdk 6.2.1来展示广告,当我在我的真实设备和模拟器上测试应用程序时,会显示广告。 但是当我将pro guard应用到我的应用程序并在我的设备上进行测试时(我也在其他设备上进行了测试)广告没有显示,请帮助!

3 个答案:

答案 0 :(得分:12)

将此添加到您的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

答案 1 :(得分:10)

From the docs

  

要将ProGuard安全地用于Google移动广告,请将以下内容添加到ProGuard配置中:

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

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

这将阻止对公共类的所有公共方法进行模糊处理。

     

如果您将AdMob Mediation与其他广告网络一起使用,则应该为每个SDK和适配器库保留公共类的公共方法。

答案 2 :(得分:1)

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 { *; }