5

コードの 90% を相互に共有する 2 つの Android アプリケーションがあり、政治的な理由 (技術的な理由もあると思います) により、別々のパッケージ名を付ける必要があります (Google Play の異なる URL に表示されるようにするため)。

アプリごとに 2 つのブランチで git を使用し、各リリースの前に 2 つのブランチを手動で同期します。2 つのブランチの 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、ソースまたはに関してこれら2つのブランチ間で唯一の異なるファイルが作成されますR)しかし、残念Rながら最終クラスです(とにかくこれが機能したかどうかさえわかりません)

import pkg.name.one.R; / import pkg.name.two.R;それで、統一されたインポートステートメントに置き換えることができるように、Rクラスに何らかのエイリアスを付ける方法はありますか?

また、同期の問題を解決する他の提案も受け付けています:)

4

2 に答える 2

0

クラスの代わりに静的フィールドRWrapperを作成するように変更できませんでしたか? Rコードは次の方法でアクセスRしますRWrapper.RClass...

public class RWrapper
{
  public static pkg.name.one.R R;
}

public class RWrapper
{
  public static pkg.name.two.R R;
}

R フィールドには次のようにアクセスします。

RWrapper.R.<blah>
于 2012-06-12T14:04:04.070 に答える