移除BuildConfig.DEBUG时的ActionbarSherlock日志

6
我注意到ActionBarSherlock库在我的应用程序中显示了很多调试信息,这是因为有很多类似以下的行:
if (BuildConfig.DEBUG)
   Log.d(TAG, "[onCreatePanelMenu] featureId: " + featureId + ", menu: " + menu);

幸运的是,日志仅在我的调试设备上显示。这要感谢if语句。
大问题是,我想在调试设备上删除所有日志,以便专注于我的代码。

我知道2个解决方案来避免这种情况:

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

是否有一种更简单的方法来实现这个目标并通过告诉库我们不在调试设备上来"欺骗"它? 我真的很想避免以上两种解决方案。


你尝试过将BuildConfig.DEBUG设置为false吗?更改BuildConfig文件并不是一个好的做法,但在开发过程中应该没问题。 - Ethan
你使用的是哪个版本的Sherlock?我找不到任何关于BuildConfig.DEBUG的参考。 - Blackbelt
@blackbelt 请看这里:https://github.com/JakeWharton/ActionBarSherlock/blob/master/actionbarsherlock/src/com/actionbarsherlock/ActionBarSherlock.java - Waza_Be
所有 Android 项目都应该生成 BuildConfig,它应该位于 gen 文件夹下,而不是 src。 - Ethan
2个回答

4

打开您的ActionBarSherlock项目
打开文件/gen/com/actionbarsherlock/BuildConfig.java
并将DEBUG = false


作为一个自动生成和自再生的文件,这并没有什么帮助,不幸的是。 - Gábor
@Gábor 在这些更改完成后不要重新构建库项目 - valerio

0

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

一旦您创建了生产版本,它将不再显示。

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

话虽如此,这可能对您没有太大帮助,因为您的应用程序不会以调试模式运行,也无法连接调试器。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接