有很多示例说明如何在运行时在代码中获取包名称。
就我而言,我需要在编译时测试包名。
以下是我的情况:我有两个利用图书馆项目的Android项目(免费和专业版)。 免费版本有一个"获取专业版"菜单项,在其他版本中不存在。 我的菜单处理代码如下:
if ( item.getItemId()==R.id.getProVersion ) {
//...
}
Proguard抱怨在构建专业包时不存在R.id.getProversion。 所以我需要测试正在构建的项目,以排除编译的这部分代码。
有没有办法在编译时知道软件包名称?
这个问题有替代解决方案吗?无论是以Android为中心还是以Java为中心的解决方案都可以。
答案 0 :(得分:0)
你可以通过编写一个自动跳过代码安静的简单注释来做到这一点。 Myabe太过分了,但它也是进入预处理的好方法......
这似乎是关于这个主题的一个很好的(KISS)教程: http://blog.christoffer.me/2011/08/how-to-enforce-static-methods-on-class.html
答案 1 :(得分:0)
您可以将菜单项放在库项目中,然后使用运行时包名检查来实际决定是否显示消息