【发布时间】:2012-06-14 08:41:40
【问题描述】:
我有两个 Android 应用程序,它们彼此共享 90% 的代码,并且由于政治原因(我认为也是技术原因)需要有单独的包名称(因此它们将出现在 Google Play 中的不同 URL 下)
我为每个应用程序使用带有两个分支的 git,并在每次发布之前手动同步这两个分支。当运行两个分支的 diff 命令时,我的很多文件都不同,而实际上唯一不同的是自动生成的文件 R 的包名,所以对于第一个应用程序,我有 15 个文件
import pkg.name.one.R;
对于其他应用
import pkg.name.two.R;
我想以相同的方式为两个类导入R。
我尝试像这样包装 R:
打包场景;
public class RWrapper {
public class R extends pkg.name.one.R {}
}
(这将使RWrapper 成为这两个分支之间关于源或R 的唯一不同文件)但唉R 是最后一个类(我什至不确定这是否可行无论如何)
那么有没有办法以某种方式给 R 类起别名,让我可以将 import pkg.name.one.R; / import pkg.name.two.R; 替换为统一的导入语句?
我也愿意接受其他可以解决我的同步问题的建议 :)
【问题讨论】:
-
最好导入
R in import statement并使用CTRL+SHIFT+O删除不必要的包 -
不是您的问题的真正答案,但是您是否将重复的代码放入您从每个应用程序引用的库项目中,或者两个应用程序完全分开并且具有 90% 相同的代码?并且您应该保持 R 文件原样,不要尝试对两个项目使用相同的文件
-
将共享代码移动到 android 库。然后将其包含在两个应用程序中。
-
萨米尔 - 我不确定你的意思
-
banzai86 & dziobas - 我的大部分共享代码已经转移到一个 android 库项目中,但我仍然坚持将我的活动放在项目本身的分支中。我有很多共享布局和可绘制对象,但在某些情况下它们是不同的
标签: java android git android-resources