我有一个具有多个构建目标(使用ant)的android项目。 出于测试目的,这些构建目标均具有不同的程序包名称(因此,对于发布版本,我的程序包名称是com.mycompany.myapp,对于测试构建,我的程序包名称是com.mycompany.myapp.test)。
除涉及布局文件中的自定义xml命名空间外,这在大多数情况下都很好用。所以这:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/com.mycompany.myapp" />
程序包名称替换为com.mycompany.myapp.test后,将立即停止工作。
因此,在每次构建过程中,每次都必须替换com.mycompany.myapp值。 并且由于所有这些文件都应位于vcs中,并且每次有人切换配置并将它们合并时都不应冲突,因此我不得不将布局文件移动到特定的config文件夹中,它们看起来像:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res/@CONFIG.PACKAGENAME@" />
现在,此文件存储在vcs中,并且在预构建过程中替换了@ CONFIG.PACKAGENAME @,然后将文件从./config/file.xml复制到./res/layout/file.xml。
这是非常不方便的,并且扩展性不好(我无法想象在构建脚本中提到50个文件中的每个文件)。
所以我的问题是:有没有一种方法可以在名称空间声明中自动使用当前包名称? 或者至少是modife布局文件(或构建文件?),这样我每次更改程序包名称时都不必替换com.mycompany.myapp。
猜你喜欢: