2016-11-14 10 views
0

私は、Eclipseの下で維持を継続したいEclipseコードプロジェクト(純粋なJavaとlibreries)を持っています。
並行して、このプロジェクトをAndroid Studioプロジェクトの一部として使用したいと思います。EclipseとAndroid Studioの間でJavaソースを共有するには?


(私が見たhereと多くの他の答えで記述されているように)EclipseプロジェクトをAndroid Studioに「ワンタイムインポート」するのではなく、EclipseプロジェクトをASプロジェクトに追加することをお勧めします。 Eclipseプロジェクトを変更すると、ASプロジェクトに反映されます。 (EclipseプロジェクトをGradleに移行することができます)。


これは実用的ではない場合は、次のオプションに進んでください:ASプロジェクトでEclipseプロジェクトのソースフォルダを使用してください。

これは実現可能ですか?


編集:コメントやamswers以下の明快さを追加するには: 私が参照のうえ午前Javaコードは、Eclipseプロジェクトの一部です。この議論のために、それは一般的な「ロジック部分」であると仮定できます。これには、EclipseでデスクトップGUIとグラフィックス、そしてAS上で実行するモバイルGUIとグラフィックがあります。 Javaロジック部分は共通のコアであり、その周りに構築します。

+1

[Googleが正式にサポートを終了しました](http://android-developers.blogspot.de/2016/11/support)のように、Android開発用のEclipse ADTを引き続き使用することはおすすめしません。 -ended-for-eclipse-android.html)。 – sschuberth

+0

オプション#1:Eclipseプロジェクトで、ASプロジェクトが依存関係として使用するJARを公開します。たとえば、ローカルのMavenレポを使用することができます。オプション#2:EclipseプロジェクトをAndroid Studioプロジェクト内でモジュールとして移動します。このモジュールに 'build.gradle'を追加し、ソースセットを設定し、Eclipseプロジェクト構造内でファイルを見つける方法をGradle(およびAndroidプラグイン)に教えます。モジュールをプロジェクトルートの 'settings.gradle'に追加します。次に、プロジェクト内の他のモジュールが 'compile project()'を介してこのモジュールを参照するようにします。 – CommonsWare

+0

@sschuberthサイドノートをありがとう。私はEclipse for Java(唯一の)プロジェクトとAndroid用のASを使用しています。だから私は共有オプションが必要です。 – c0der

答えて

1

このプロジェクトをAndroid Studioプロジェクトの一部として使用したいと思います。

このプロジェクトではライブラリが作成されているものとします。それ以外の場合、私はあなたがAndroidのプロジェクトでそれをどうするか分かりません。このライブラリは、計画されているAndroid Studioプロジェクトとは別の、他のプロジェクトで使用されていますか?

答えが "はい、このライブラリにはたくさんのクライアントがある"場合、そのライブラリを実際にリポジトリにアーティファクトとして公開することを検討する必要があります。これは、自分の開発マシン上のリポジトリでも、チーム用のローカルサーバ上のリポジトリでも、公開されているプロジェクト(たとえば、これがオープンソースプロジェクトの場合など)でも構いません。クライアントのそれぞれがこのライブラリの異なるバージョンを必要とする可能性があります。したがって、ライブラリの別のエディションをバージョン付きアーティファクトとして公開すると便利です。

答えが「まあまあですが、このJavaコードのJARはコマンドラインなどで別々に使用されるかもしれませんが、ライブラリとして唯一のクライアントはAndroid Studioプロジェクトです」と設定すると、 Android Studioプロジェクト内でEclipseプロジェクトを動かすことで、ライブラリモジュールとしての役割を果たすことができます。

キーは、build.gradleファイルをGradle/ASにEclipseプロジェクトをビルドする方法を教えるEclipseプロジェクト/ ASモジュールに追加することです。あなたは使用前ASのAndroidプロジェクトファイル構造のようなものを持っている場合たとえば、あなたがこのようなandroid閉鎖ている可能性があります:

android { 
    compileSdkVersion 19 
    buildToolsVersion "21.1.2" 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 
} 

をまた、プロジェクトでは、あなたのsettings.gradleファイルにこのモジュールを追加する必要がありますルート。その時点で、他のモジュールはdependenciescompile project(':whatever-you-call-it')を使用してライブラリを取得できます。

これは言い換えれば、Android Studioは少なくともAndroid Studio 2.2以降でpure-Javaモジュールをサポートしています。EclipseとAndroid Studioのどちらも「すばらしい」と正確に認定されていないので、2つのIDEがシステムを大量に消費するため、私はそのルートに行きます。

+0

詳細な回答ありがとうございます。私はそれを勉強します。 – c0der

関連する問題