0

Eclipse を使用して (Android で開発する) 最初のプロジェクトと同じであるが、いくつかのクラスが異なる 2 番目のプロジェクトを作成したいと考えています。

まさに、私は Android アプリを作成していて、無料版とプレミアム版を提供したいと考えています。実際、プロジェクトのコードは同じですが、いくつかのクラスが変更されています。

問題は、2 つのプロジェクトをサポートしたくないということです。クラスを変更すると、他のプロジェクトでも同じ変更を変更する必要があります。非常に冗長です。

さらに、プロジェクトはリモート GIT リポジトリにプッシュされます。

最後に 1 つ注意してください。Andriod アプリは、ルート パッケージを使用して識別されます。たとえば、com.example.myapp です。

したがって、com.example.myappfree と com.example.myapppremium など、2 つの異なるルート パッケージが必要です (新しいフォルダーを作成する必要があります)。

パッケージとクラスを共有する Eclipse で 2 つの Java プロジェクトを作成し、2 つまたは 3 つのクラスを変更する最適なソリューションはどれですか?

4

4 に答える 4

1

他のandoridプロジェクトで参照したいプロジェクトをライブラリプロジェクトとして作成します。Android プロジェクトでライブラリ プロジェクトを参照できます

プロジェクトをライブラリ プロジェクトにするには。プロジェクトを右クリックします。プロパティに移動し、android を選択します。[ライブラリです] を選択します。適用をクリックしてOKをクリック

ここに画像の説明を入力 Hers は、Android プロジェクトのライブラリ プロジェクトである actionbarsherlock を参照する方法のスナップ ショットを投稿したリンクの例です。

actionbarsherlock をインポートすると、 import .R を解決できません

開発者サイトへのリンク

http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

于 2013-04-15T15:49:21.323 に答える
1

これはそれほど簡単ではありませんが、Android プロジェクトのライブラリ機能を Eclipse で利用したい場合があります。

http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

于 2013-04-15T15:48:31.010 に答える
1

これを行うには、ライブラリ プロジェクトを使用できます。基本的に、すべてのコードを取得してライブラリに変換するメイン プロジェクトを取得します。無料版と有料版の 2 つの新しいプロジェクトを作成します。

ライブラリ プロジェクトの設定方法については、こちらをご覧ください。

無料と有料のプロジェクトのパッケージ名が異なることを確認する必要があります。ライブラリ プロジェクトでは、パッケージ名を読み、無料版と有料版のどちらを実行しているかを確認します。

ここでは、私が公開した実用的な例を見ることができます。ソース全体がライブラリ プロジェクトにあり、他のソースは異なるリソースのみを使用します。

PackageSelector クラスを確認してください。実行中のバージョンを検出する方法を示しており、それに応じてアプリを簡単に変更できます。

public class PackageSelector extends Application {


public int getVersion() {       
    if (getPackageName().toLowerCase().contains("pro")) 
     return LanguagePickActivity.FULL;
    else if (getPackageName().toLowerCase().contains("macedonian")) 
     return LanguagePickActivity.MACEDONIAN;
    else if (getPackageName().toLowerCase().contains("german")) 
         return LanguagePickActivity.GERMAN;        
    else // if (getPackageName().toLowerCase().contains("spanish")) 
     return LanguagePickActivity.SPANISH;
}
}

あなたの活動について:

public void getVersion()  {
    Country =  ((PackageSelector)getApplication()).getVersion(); 
 }

そして、単一のバージョンに関連するものがある場合:

 if (Country == LanguagePickActivity.FULL ) { 
            //Do something only the paid version has
        finish();
    }
    else {
     //Do something on the free version
     finish();
 }
于 2013-04-15T15:56:15.267 に答える