如何在“发布”版本中不编译某些 Android 菜单项
Posted
技术标签:
【中文标题】如何在“发布”版本中不编译某些 Android 菜单项【英文标题】:How to not compile certain Android menu items on 'release' builds 【发布时间】:2013-03-05 13:22:19 【问题描述】:我有一个我称之为“调试”的菜单项,它做了一些对“调试”版本很方便的事情。我希望“发布”APK 上不存在此菜单项。
有没有办法告诉编译器忽略 XML 菜单文件中的那些条目?
谢谢:-)
【问题讨论】:
【参考方案1】:如果您正在使用菜单 XML 资源,您可以将这些仅用于调试的选项隔离到它们自己的资源 XML 文件中。然后,除了膨胀你的主要的,你也膨胀调试专用的,如果BuildConfig.DEBUG
是true
:
if (BuildConfig.DEBUG)
// inflate that second resource XML file
如果您使用 Java 代码设置菜单,则可以执行相同的基本操作,将仅用于调试的 add()
调用封装在对 BuildConfig.DEBUG
的检查中。
原则上,即将推出的基于 Gradle 的构建系统将有助于使这变得更容易一些,但目前 AFAIK 还需要几个月的时间。
【讨论】:
【参考方案2】:如果您使用 Jenkins 创建构建,您可以使用 shell 命令将调试菜单 xml 文件替换为生产版本。这对于 web 服务详细信息 xml 文件也非常有效。
【讨论】:
以上是关于如何在“发布”版本中不编译某些 Android 菜单项的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Android 中不推荐使用某些 NotificationBuilder 方法,我应该使用哪些方法?
如何在android中具有某些条件的最新sdk版本中重复通知?
我的应用程序中不支持的 major.minor 版本 52.0