使用Ant编译我的应用程序时,我可以看到详细的Proguard输出,并且我已经设置了删除日志语句(见下文),但是当我运行发行版apk时,我试图删除的所有日志语句都在那里.
我有2个项目,每个项目都包含一个共同的项目.2个主项目和公共项目都有一个proguard.cfg文件,所有这些文件都包含删除日志语句的代码段.
有什么东西我错过了吗?
**我的所有日志语句都是Log.d(...)
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dontobfuscate
-forceprocessing
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
Run Code Online (Sandbox Code Playgroud)
sla*_*ton -1
您可以执行以下操作,而不是使用 pro-guard 删除或注释掉所有日志消息。创建一个实用程序类,它基本上是 android 日志系统的包装器
public class Util{
public static boolean showLogs = true;
public static String myTag = 'My Tag';
public static void logD(String message){
if (Util.showLogs)
Log.d(myTag, message);
}
}
Run Code Online (Sandbox Code Playgroud)
在编译我的应用程序进行分发之前,showLogs = true;我只需调用,然后所有日志消息都会被抑制
您可以轻松地扩展此类,以允许您指定标记并生成调试消息之外的更多内容。
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |