我可以在Android中以某种方式对R进行别名吗?

Dan*_*iel 5 java git android android-resources

我有两个Android应用程序,它们共享90%的代码,并且由于政治原因(我认为也是技术原因)需要有单独的程序包名称(因此它们将出现在Google Play中的不同URL下)

我为每个应用程序使用带有两个分支的git,并在每次发布之前手动同步两个分支.当运行两个分支的diff命令时,我的很多文件都是不同的,实际上唯一不同的是自动生成的文件R的包名,所以对于第一个应用程序我有15个文件

import pkg.name.one.R;
Run Code Online (Sandbox Code Playgroud)

以及其他应用程序

import pkg.name.two.R;
Run Code Online (Sandbox Code Playgroud)

我想以某种方式导入R两个类的相同方式.

我试着像这样包装R:

包装thescene;

public class RWrapper {

    public class R extends pkg.name.one.R {}

}
Run Code Online (Sandbox Code Playgroud)

(这将RWrapper是这两个分支之间关于源的唯一不同文件或者R)但是唉R是最后一个类(我甚至不确定这会是否有效)

所以它有一种方式以某种方式为R类别名,使我可以import pkg.name.one.R; / import pkg.name.two.R;用统一的import语句替换它?

我也对其他可以解决我的同步问题的建议持开放态度:)

seg*_*ggy 0

您不能修改RWrapperR静态字段而不是类吗?然后您的代码将R通过以下方式访问RWrapper.RClass...

例子

public class RWrapper
{
  public static pkg.name.one.R R;
}
Run Code Online (Sandbox Code Playgroud)

public class RWrapper
{
  public static pkg.name.two.R R;
}
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式访问 R 字段:

RWrapper.R.<blah>
Run Code Online (Sandbox Code Playgroud)