【发布时间】:2012-10-18 20:41:17
【问题描述】:
我在一个项目中使用 Eclipse 开发了一个 Android 应用程序 - 它是结构化的(来自 iPhone),所以一个常量定义它是演示版还是完整版。
现在我有一个问题,每次我想创建演示版本时,我都需要更改常量,但还需要使用不同的包名称制作项目的副本。
显然需要将原始完整版中的更改代码复制到演示中,否则我每次提交应用时都必须重新创建演示应用。
我看到了三种可能的方法:
1。 虽然我研究了图书馆项目,但我仍然不清楚这在这种情况下如何真正提供一个好的解决方案。
例如,如果我有带有活动结构的完整版本:
A1
A2
A3
使用实用程序类 U1、U2
当然 U1 和 U2 可以在一个库项目中并从两个项目中引用 - 但是需要复制活动、strings.xml、图形、布局(或者还有其他我看不到的方式吗?)这确实似乎不是一个好的前进方式,不幸的是,在提出这种方法时,没有在关于此主题的类似问题中进行解释。
2。 另一种方法是根据不同的构建设置(类似于 iPhone)创建不同的包名称,但是,这在 Eclipse 中似乎是不可能的,而不是通过使用一些外部脚本(老实说,我宁愿避免,因为它看起来相当容易出错)同时还必须在 Eclipse 之外调用编译
3。 可能是最直接的方法(目前也是很少的努力)是手动复制项目,更改一个常量,重命名包并在每次提交时编译/导出。然而,这似乎相当“基本”,而且看起来并不专业(与 iPhone/xCode 构建设置/目标解决方案相比)
最好的方法是什么(需要最少的更改并且仍然稳定且易于使用)?
非常感谢!
编辑
对于所有尝试过 tim 解决方案的人来说 - 它工作正常,但是我遇到了自定义属性的问题。
检查这个:How to solve Android Libraries custom attributes and package name remapping during build? 它将解决图书馆的问题
【问题讨论】:
标签: android build android-library conditional-compilation