Android proguard配置不会删除我的日志消息
我正在开发我的Android应用程序 然后,我通过以下方式启用和配置proguard: 第1步。启用proguard: 在项目属性中我有:Android proguard配置不会删除我的日志消息,android,proguard,Android,Proguard,我正在开发我的Android应用程序 然后,我通过以下方式启用和配置proguard: 第1步。启用proguard: 在项目属性中我有: proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt -assumenosideeffects class android.util.Log { *; } 我还尝试了以下方法: # To enable ProGuard to
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
-assumenosideeffects class android.util.Log { *; }
我还尝试了以下方法:
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=proguard.cfg
第2步。配置proguard:
在proguard.cfg中,我有:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
-assumenosideeffects class android.util.Log { *; }
我认为上面的配置应该删除所有日志
但是当我在
target/
文件夹下安装APK并运行我的应用程序时,我仍然可以在logcat控制台中看到我的所有日志消息。为什么?我不记得在哪里找到了对该方法的引用,但我一直使用该方法:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
在我的配置中。它确实删除了我编写的调试和详细日志记录您应该在项目中使用第一行。属性:
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
然后,您应该将这些行添加到您的proguard project.txt(而不是弃用的proguard.cfg):
这些选项仅在文件不包含-dontoptimize时有效
Ant和Eclipse从project.properties获取设置。Gradle和Maven需要分别在build.Gradle和pom.xml中指定配置文件的等效设置
类似的问题和答案:
import android.util.Log;
加
像这样:
public class Log {
public static void i(String logTag, String logString) {
if (isLogsEnabled) {
Log.i(logTag, logString);
}
}
public static void v(String logTag, String logString) {
if (isLogsEnabled) {
Log.v(logTag, logString);
}
}
// you can add method for w,d,wtf also...
}
日志记录是开发人员使用的一种非常方便的调试和诊断技术。使用作为Android SDK一部分提供的日志类将有关应用程序的重要信息记录到LogCat,但请确保在发布之前查看应用程序的日志实现,因为日志记录存在性能缺陷
在发布应用程序之前,请仔细查看日志,以防其包含任何机密数据
无论何时应用程序处于测试模式,日志都非常重要,日志将为您提供当前设备上应用程序的当前状态和场景。因此,无论何时更新应用程序,它都非常有用
有时,如果发现您的日志记录机制违反规则,Google play会拒绝您的应用程序。您仍然会看到一些来自您无法控制的代码的消息。你看到了什么?我看到了我使用Logdid proguard运行的所有日志消息?您是否导出了应用程序(Eclipse)?是的,proguard正在运行。我没有从Eclipse导出,但是我已经在pom.xml中配置了&runmaven命令来生成APK。我可以从proguard已经运行的终端上看到,我在target/folderAdding
proguard.config=proguard.cfg
中将proguard生成的apk文件安装到project.properties中,效果很好。你的问题在别处。自从proguard.cfg被弃用以来?@Leem.fin根本不是。只需在project.properties中添加proguard.config=proguard.cfg
。SDK工具修订版20开始将proguard-project.txt与中心proguard-android.txt相结合,以支持proguard.cfg,至少在创建新项目时是这样。新方法显然更可取,因为它将特定于项目的配置(由您维护)与一般配置(由谷歌的Android团队维护)分开。文档似乎还没有更新。使用proguard android optimize存在一定风险。签出中的注释。还有其他方法可以删除调试消息。签出问题是特定于使用proguard修剪日志消息使用proguard,您将需要proguard android优化,正如中的评论所述,这是有风险的。因此,上述是一个不错的选择。如中所述,还有其他选项