我有两个版本的同一个应用程序使用相同的proguard.cfg
,以下部分旨在压制所有Log.x()LogCat输出:
-assumenosideeffects class android.util.Log {
public static *** v(...);
public static *** i(...);
public static *** d(...);
public static *** w(...);
public static *** e(...);
}
第一个版本是单片版(即没有引用任何图书馆项目),proguard.cfg
完全符合预期。
第二个版本使用两个图书馆项目(一个是我的,另一个是谷歌的LVL)。应用程序项目和我的库项目中都放置了相同的proguard.cfg
。但是,在第二个版本中,proguard.cfg
似乎没有效果!
有什么可以解释这个?
答案 0 :(得分:2)
您确实在应用项目中向proguard.config=proguard.cfg
添加了build.properties
?您应该看到ProGuard的控制台消息和输出文件。优化过程至少应该提到一些“删除的指令数”。
应用程序类和库类都编译为bin / classes。然后对它们进行完全相同的处理:使用proguard.cfg将它们组合成bin / original.jar并混淆到bin / obfuscated.jar。添加更多类不会对删除日志记录代码产生影响。
答案 1 :(得分:1)
请使用此开关诊断: -whyareyoukeeping
答案 2 :(得分:0)
要在我的应用中禁用日志记录,我使用了这个:
-assumenosideeffects public class android.util.Log {
<methods>;
}
如果这不能解决您的问题,那么还有其他一些事情要尝试:
<application>
元素设置为android:debuggable="false"