6

我注意到库 ActionBarSherlock 在我的应用程序中显示了很多调试信息,仅仅是因为有很多这样的行:

if (BuildConfig.DEBUG)
   Log.d(TAG, "[onCreatePanelMenu] featureId: " + featureId + ", menu: " + menu);

幸运的是,日志只显示在我的调试设备上。感谢if声明。
最大的问题是我想删除调试设备上的所有日志以专注于我的代码。

我知道避免这种情况的两种解决方案:

  1. 删除/编辑库中的所有日志
  2. 在 Eclipse 中过滤 logcat。

有没有更简单的方法来实现这一点并通过告诉它我们不在调试设备上来“伪造”库?我真的很想避免上述两种解决方案。

4

2 回答 2

4

打开你的 ActionBarSherlock 项目
打开文件/gen/com/actionbarsherlock/BuildConfig.java
并设置DEBUG = false

于 2013-08-27T20:59:01.530 回答
0

只有当您的应用程序在调试模式下运行时,才会显示调试消息。这意味着,如果您没有在 AndroidManifest.xml 中定义它只会显示在调试版本中。

一旦你创建了一个生产版本,它就不会出现。

您可以通过在您的 androidmanifest 文件中手动设置 debuggable 标志并运行它来测试它。有关清单文件中选项的详细信息,另请参阅http://developer.android.com/guide/topics/manifest/application-element.html

也就是说,它可能对您没有太大帮助,因为您的应用程序不会在调试模式下运行并且您无法连接调试器。

您可以将所有对 BuildConfig.DEBUG 的引用替换为 your.package.name.SherlockConfig.DEBUG 之类的内容,并自己在那里定义调试变量。这样您就可以自己启用和禁用 ActionbarSherlock 调试。

于 2013-07-08T14:47:56.127 回答