【问题标题】:Disable admob debug messages禁用 admob 调试消息
【发布时间】:2013-10-25 09:25:53
【问题描述】:

即使在启用 proguard 的情况下导出我的应用程序后,Admob 调试消息仍会显示在 LogCat 上

看起来像这样

10-25 10:13:22.913: I/Ads(13399): adRequestUrlHtml: AFMA_buildAdURL({"preqs":12,"session_id":"6802423233789","u_sd":2,"seq_num":"13","slotname":"MY 私人的 KEY!!","u_w":384,"msid":"com.mypackage","js":"afma-sdk-a-v6.1.0","toar":0,"mv":"80230011. com.android.vending","isu":"25C96A854AB7982C962ED93D02871DA89","cipa":1,"format":"320x50_mb","net":"ed","app_name":"41.android.com.my. package","hl":"en","u_h":592,"carrier":"23430","ptime":1112155,"u_audio":3});

如何禁用这些消息?

编辑:

这就是我的 proguard 配置的样子

-dontwarn com.androidquery.auth.*

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#-keepparameternames
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
                SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

#-keep public class com.androidquery.*,com.androidquery.callback.*,com.androidquery.util.AQUtility,com.androidquery.util.Constants {
-keep public class *{
    public protected *;
}

-keepclassmembernames class * {
    java.lang.Class class$(java.lang.String);
    java.lang.Class class$(java.lang.String, boolean);
}

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}
# Remove log messages
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
    public static *** i(...);
}

【问题讨论】:

    标签: android admob proguard


    【解决方案1】:

    检查following 答案,其中调试和详细日志在 proguard.cfg 文件中被禁用:

    -assumenosideeffects class android.util.Log {
        public static *** d(...);
        public static *** v(...);
    }
    

    您也可以使用它来阻止 INFO 日志消息,方法是:

    -assumenosideeffects class android.util.Log {
        public static *** d(...);
        public static *** v(...);
        public static *** i(...);
    }
    

    编辑:请注意,虽然不会记录消息,但字符串仍然在生成的字节码中。请参阅this answer 了解更多信息。

    【讨论】:

      【解决方案2】:

      该消息是来自 Admob 库的 INFO 级消息。这不关你的事。

      您担心什么,即显示您的 AdUnitId?您是否担心其他人会使用它并将他们的流量也归功于您?

      我不会担心的。

      【讨论】:

      • 确实如此,但它非常烦人,因为每次广告刷新时,我的 logcat 都会被垃圾邮件
      • 这就是我们有 logcat 过滤器的原因
      • 每次加载 Eclipse 时都必须应用过滤器。此外,如果您想过滤其他内容,则必须删除 Admob 过滤器并重新应用它
      • 您应该过滤那些您感兴趣的消息。我通常只过滤来自 my 应用程序甚至该应用程序中特定组件的消息。添加删除过滤器只需单击一下,至少在一个不错的 IDE 上,几乎不费力。
      猜你喜欢
      • 2016-01-11
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      相关资源
      最近更新 更多