web-dev-qa-db-ja.com

EclipseプロジェクトをどのようにしてAndroid St​​udioにインポートしますか?

Android Studioの[プロジェクトのインポート]を使用して、プロジェクト構造を変更してGradleファイルを生成するEclipseプロジェクトを使用しましたが、現在(AS 0.5.3を使用しています)IDEAファイルのみを生成しています( .iml、.idea)が、Gradleではなく、ファイル構造にも影響しません。

EclipseプロジェクトをAndroid Studioにインポートする方法を教えてください。

更新: Eclipseでgradleファイルをエクスポートしようとしても、アプリ用にエクスポートされません。Android Studioでもモジュールとして表示されません。

59
Phazor

Android St​​udioの新しいバージョンでは、Eclipse/ADTプロジェクトを取り込む最良の方法は、Android St​​udioに直接インポートすることです。以前はEclipseからGradleに最初にエクスポートすることをお勧めしていましたが、Android St​​udioに対応するのに十分な頻度でADTを更新していません。

いずれにしても、Android St​​udioを起動するときに[ファイル]メニューまたは[ようこそ]画面から[プロジェクトのインポート]を選択すると、コピーすることを求める専用のウィザードが表示されます。ファイルをインプレースでインポートするのではなく、新しいディレクトリ構造にインポートします。依存関係をMavenスタイルのインクルードなどに変換するなど、いくつかの一般的な問題を修正します。

この特殊なフローを取得しているようには見えません。インポートしたプロジェクトをADTプロジェクトとして認識していない可能性があり、Gradleを認識しない古いIntelliJに組み込まれた動作がデフォルトになっていると思います。特殊なインポートを機能させるには、次の条件を満たす必要があります。

  • インポートするプロジェクトのルートディレクトリには、 AndroidManifest.xml ファイル。
  • どちらか:
    • ルートディレクトリには、 。事業 そして .classpath Eclipseからのファイル
  • または
    • ルートディレクトリには 解像度 そして src ディレクトリ。

プロジェクトが複雑な場合、インポートを成功させるために見たいルートディレクトリとしてプロジェクトを指定していない可能性があります。

69
Scott Barta

Eclipseからエクスポート

  1. Eclipse ADTプラグインを22.0以降に更新する 、次に[ファイル] | [書き出す

  2. Androidに移動し、Generate Gradle build filesをクリックすると、Gradleファイルが生成されます。

    enter image description here

  3. エクスポートするプロジェクトを選択します

    enter image description here

  4. 今すぐ終了をクリックします

    enter image description here

Android Studioにインポートします

  1. Android Studioで、現在開いているプロジェクトをすべて閉じます。 Android Studioウィンドウへようこそが表示されます。

  2. [プロジェクトのインポート]をクリックします。

  3. Eclipseからエクスポートしたプロジェクトを見つけて展開し、選択して[OK]をクリックします。

25
Ajay S

次の手順を試してください:1- Import project(Eclipse、ADT、...)をクリックします

enter image description here

2- Eclipseプロジェクトのメインディレクトリを選択します

enter image description here

3-デフォルトのままにします。最初の2つのオプションは、jarファイルをリモートライブラリに変更するためのものです(依存関係)。 Androidスタジオの構築中に、ローカルシステムまたはリモートリポジトリでライブラリを見つけようとします。最後のオプションは、インポート後に1つのフォルダーのみをアプリとして表示するためのものです。

enter image description here

4-次に、変更の概要が表示されます

enter image description here

5-その後、Gradleプロジェクトの同期に失敗した場合は、プロジェクトビュー(左上隅)に移動する必要があります。次に、プロジェクト->アプリに移動してbuild.gradleを開きます。

enter image description here

6-次に、compilesdkVersionとtargetsdkVersionを、buildToolsVersionに表示される現在のバージョンに変更する必要があります(私の場合は23です)。たとえば、私のプロジェクトでは、2つの場所で17から23に変更する必要があります

7-依存関係にエラーが表示された場合は、バージョンを変更する必要があります。たとえば、私のプロジェクトでは、使用しているAndroidサポートライブラリのバージョンを確認する必要があります。そこで、SDKマネージャーを開いて下に移動してバージョンを確認します。次に、Androidスタジオバージョンを現在のバージョンに置き換え、右上隅から[再試行]をクリックする必要があります

enter image description hereenter image description hereenter image description hereenter image description hereenter image description here

役に立てば幸いです。

10
Vahid

Android St​​udioを使えば簡単になります最初に選択するだけです

  1. import project(Eclipse .....) enter image description here
  2. 次に、Eclipseベースのフォルダーを選択します。以下のようなものです enter image description here

3.使用したプロジェクトとライブラリのタイプ(ActionBarSherlock)に基づいて、特別なインポートウィザードが表示される場合があります。この場合、それは単純なものでした

enter image description here

4.これで完了です。 enter image description here

ただし、debugまたはRunオプションが機能しない場合があり、エラーメッセージが

「このプロジェクト構造は、Gradleベースでも、Gradleに移行するものでもありません」

これを解決するために、開いたEclipseプロジェクトを閉じ、インポートプロジェクト(Eclipse adt、gradleなど)で以前と同じプロセスで同じプロジェクトを再度開きます。今回はAndroidスタジオで必要なすべてのgradleファイルを追加します緑色のデバッグオプションも機能します。どういうわけかこれを偶然にやったことがありますが、うまくいきました。

8
vikas kumar

Android Studioはこの質問が投稿されてから改善されており、Android St​​udioの最新バージョン(この記事の執筆時点では2.1.1)にはEclipseインポート機能がかなりあり、EclipseプロジェクトをAndroid St​​udioは、EclipseからAndroid St​​udioにプロジェクトを移行するための最良のアプローチになりました。

以下に、これを行う方法について説明します。これには、遭遇する可能性のあるいくつかの落とし穴も含まれます。特に、1つ以上のプロジェクトライブラリを共有する複数のアプリを含むEclipseワークスペースのインポートを扱います(これまでに投稿されたアプローチは、1つのEclipseアプリプロジェクトとそのプロジェクトライブラリのインポートに限定されるようです)。私は考えられるすべての問題に対処しているわけではありませんが、それらのいくつかについて詳細に説明します。これは、このプロセスを初めて経験する人たちの役に立つことを願っています。

最近、Eclipseワークスペースからプロジェクトをインポートしました。このワークスペースには、それぞれ最大9つのプロジェクト間で共有される4つのライブラリプロジェクトが含まれていました。

背景:

Eclipseワークスペースには、複数のプロジェクトが含まれます。これらのプロジェクトは、ライブラリプロジェクトまたはアプリです。

Android St​​udio project は、ライブラリプロジェクトとアプリの両方を含むことができるという点で、Eclipse workspace に類似しています。ただし、ライブラリプロジェクトまたはアプリは、Android St​​udioでは「モジュール」で表されますが、Eclipseでは「プロジェクト」で表されます。

要約すると、EclipseワークスペースはAndroid St​​udioプロジェクトになり、ワークスペース内のEclipseプロジェクトはAndroid St​​udioモジュールになります。

Android St​​udioプロジェクト(ファイル/新規/新規プロジェクト)を作成して、インポートプロセスを開始する必要があります。このプロジェクトには、Eclipseワークスペースに付けたものと同じ(または類似の)名前を付けることができます。最終的に、このプロジェクトは、インポートするEclipseプロジェクト(プロジェクトライブラリを含む)ごとに1つずつ、すべてのモジュールを保持します。

インポートしたファイルを別のフォルダー階層に配置する限り、インポートプロセスは元のEclipseファイルを変更しないため、元のEclipse階層にないこのプロジェクトのフォルダーを選択する必要があります。たとえば、EclipseプロジェクトがすべてAndroidというフォルダーにある場合、AStudioという兄弟フォルダーを作成できます。

Android St​​udioプロジェクトは、この新しいフォルダーのサブフォルダーとして作成できます。新規プロジェクトウィザードは、プロジェクトを作成するこの最上位プロジェクトフォルダーを入力するように求めます。

Android Studioの新しいプロジェクトウィザードは、プロジェクトの作成時に単一のモジュールを構成するように求めます。これは最初は少し混乱する可能性があります。モジュールを作成していることを実際に伝えないからです。単一のモジュールを含むプロジェクトを作成しています。どうやら、すべてのプロジェクトには少なくとも1つのモジュールが必要であるため、Eclipseを使用してモジュールを提供しているため、最初のモジュールはその正式な要件を満たすためのプレースホルダーになります。

そのため、プロジェクトの初期モジュールをできるだけ作成しないでください。したがって、モジュールのタイプとして「電話とタブレット」を選択し、デフォルトの最小SDK(APIレベル8)を受け入れて、モジュールの「アクティビティなしの追加」を選択します。

次に、ワークスペースで、インポートする最初のプロジェクトとして最大数のライブラリを必要とするEclipseアプリプロジェクトの1つを選択します。これを行う利点は、そのプロジェクトをインポートするときに、使用するすべてのライブラリプロジェクト(ライブラリプロジェクト自体が他のライブラリプロジェクトを必要とする場合は直接または間接的に)がインポートプロセスの一部としてインポートされることです。

これらのインポートされた各プロジェクトは、Android St​​udioプロジェクト内で独自のモジュールを取得します。これらのモジュールはすべて、モジュールを個別にインポートした場合と同じように(プロジェクト階層内、およびファイルが配置されているフォルダー階層内で)互いに兄弟になります。ただし、インポートプロセスの一部として、モジュール間の依存関係が(アプリのbuild.gradleファイルに)作成されます。

この「最も依存している」Eclipseプロジェクトとそのサポートライブラリプロジェクトのインポート、テスト、デバッグが完了したら、2つ目のEclipseアプリプロジェクト(ワークスペースに2つ目がある場合)と its ライブラリプロジェクトモジュール(以前にインポートされたものは、インポートウィザードによって既存のモジュールとして検出され、複製されるのではなく、この新しいモジュールに再利用されます)。

したがって、Eclipseから単一のライブラリプロジェクトを直接インポートする必要はありません。それらはすべて、インポートするアプリプロジェクトへの依存関係に基づいて、間接的に取り込まれます。これは、ワークスペース内のすべてのライブラリプロジェクトが、同じワークスペース内の1つ以上のアプリプロジェクトのニーズを満たすために作成されることを前提としています。

この最初のアプリプロジェクトのインポートを実行するには、Android St​​udioに戻り、作成したプロジェクトにいる間に、[ファイル]、[新規]、[新しいモジュール]の順に選択します。 File/New/Import Moduleを使用すべきだと考える no not。これを行うと、Android St​​udioは new プロジェクトを作成してインポートしたモジュールを保持し、モジュールを that プロジェクト。実際に could first モジュールを作成しますが、2番目からN番目のモジュールではこの他の方法を使用する必要があります(モジュールを existing プロジェクトにインポートします。したがって、「空の」プロジェクト(または、独自の空虚な、何もしないプレースホルダーモジュールを持つプロジェクト)から開始すると思います。そして、Eclipseプロジェクトのそれぞれを新しいモジュールとして that プロジェクト(つまり、ここで採用しているアプローチ)にインポートすると、混乱が少なくなります。

したがって、実質的に空の新しいプロジェクトを取得し、その中のファイル/新規/新規モジュールを実行します。これが起動するウィザードにより、作成するモジュールの種類を選択できます。 [Eclipse ADTプロジェクトのインポート]を選択する必要があります。これは、現在のAndroid St​​udioプロジェクト内でEclipseプロジェクトをAndroid St​​udioモジュール(および依存するライブラリモジュールと共に)に変換する方法を知っているウィザードにアクセスするものです。

ソースフォルダーの入力を求められたら、Eclipseプロジェクトのフォルダーを入力する必要があります(これは、そのプロジェクトのAndroidManifest.xmlファイルを含むフォルダーです)。

インポートウィザードは、作成しようとするモジュール名を表示します(元のEclipseプロジェクトの名前と同様ですが、モジュール名とプロジェクト名(大文字で始まる通常、このデフォルトを受け入れるとかなりうまくいきます。

モジュール名の下には、「追加の必須モジュール」というタイトルのセクションがあります。これにより、インポートするモジュールに必要なすべてのライブラリがリストされます(または its ライブラリなど)。これはインポートする最初のモジュールであるため、これらはいずれもプロジェクトに含まれていないため、各モジュールのデフォルトで[インポート]ボックスがオンになっています。これらのモジュールが必要なため、これらはチェックしたままにしてください。 ( later Eclipseアプリプロジェクトをインポートするときに、必要なライブラリが既にインポートされている場合、それらのライブラリはここに表示されますが、「Project alreadyこの名前のモジュールが含まれています」を選択すると、インポートボックスはデフォルトで un -チェックされます。その場合、インポーターが新しく接続するように、ボックスをオフのままにしておく必要があります-既にインポートされているライブラリにモジュールをインポートします。Android St​​udioがモジュール用に作成するデフォルト名を受け入れることは、IDEを許可するために重要になる場合があります。これらのライブラリモジュールを見つけて再利用します。

次に、インポーターは、jarおよびライブラリーのソースをGradle依存関係に置き換え、依存モジュールのcamelCaseモジュール名を作成し、これらのオプションをデフォルトですべてチェックすることを提案します。通常、これらのオプションはチェックしたままにして続行する必要があります。ただし、起こりうる問題についての警告を読んでください。インポートされたモジュールはいつでも削除でき(プロジェクト構造ダイアログを使用)、インポートプロセスを最初からやり直すことができることに注意してください。

私が得た次の表示(YMMV)は、AndroidサポートリポジトリがSDKインストールにインストールされていないことを主張しています。インストールのためにAndroid SDK Managerを開くボタンがあります。ただし、そのボタンは機能しませんでした。 SDKマネージャーを別のアプリとして手動で開いたところ、Androidサポートリポジトリが既にインストールされていることがわかりました。しかし、更新がありました。私はそれをインストールし、インポートダイアログの更新ボタンをタップしましたが、それは何もしませんでした。したがって、私は先に進みましたが、このリポジトリの知覚された欠如はインポートプロセスを損なうようには見えませんでした(ただし、インポートされたコードを操作している間に、時々行方不明になっているというメッセージを受け取りましたが、問題を修正した提供されたリンクをクリックしてください-少なくとも一時的に)。最終的にこの問題は、リポジトリにアップデートをインストールしたときに解消されたため、まったく発生しない可能性があります。

この時点で、[完了]をクリックします。しばらくすると、モジュールが作成され、ビルドされます。すべてうまくいけば、Gradle ConsoleにBUILD SUCCESSFULメッセージが表示されます。

1つの癖は、ビルドが失敗した場合、インポートされたモジュールがプロジェクト階層に表示されない可能性があることです。新しいモジュールが表示される前に、最初の有効なビルドに到達する必要があるようです(とにかく私の経験)。 (ファイル/プロジェクト構造)ダイアログに新しいモジュールを表示できる場合があります(たとえば、それらを削除してインポートをやり直す場合)。

元のEclipseプロジェクトは変更しないため、インポートしたモジュールをいつでも削除でき(インポートがうまくいかない場合)、最初からやり直すことができます。 Android St​​udioモジュールを削除した後、Eclipse側に変更を加えることもできます(2回目にインポートが改善される場合(Eclipseで既存のソースを構築するフォールバック機能を保持する限り)。以下のバージョン管理で説明するように、プロジェクト構造はAndroid St​​udioの下で変更されるため、Eclipseでビルドする能力を維持する必要があるかもしれません。 Android St​​udioへの移動に先行するコミット(たとえば、バグ修正のため)では、Eclipseで以前のコミットをビルドする機能が必要になります。

モジュールを削除するには、ファイル/プロジェクト構造を選択し、ダイアログの左側からモジュールを選択して、削除キーを押す必要があります。何らかの理由で、プロジェクト階層でモジュールを直接削除できませんでした。このプロジェクト構造ダイアログを使用して実行する必要がありました。

インポートウィザードは、発生した可能性のある問題の詳細なリストと、それらを解決するために実行したアクションを含むimport-summary.txtファイルを生成します。インポートされたコードの構築または実行に問題がある場合に何が起こっているかの手がかりを提供する可能性があるため、注意深く読んでください。また、Android St​​udioプロジェクトのさまざまな構造に対応するためにインポーターが移動するものを見つけるのに役立ちます。

すべてが not でうまくいく場合は、発生する可能性のあるこれらの問題と、それらの問題の解決策を見てください。

一般的に言って、私が遭遇した問題には主に2つの種類があります。

  1. 問題を守る
  2. マニフェストの問題

Proguardが台無しになると、ライブラリ内のメソッドの(難読化された)名前がアプリからの呼び出しに使用される名前と一致しない場合があり、「エラー:シンボルクラスが見つかりません...」などのコンパイラエラーが発生します

Eclipseでは、Proguardスタッフはライブラリプロジェクトではほとんど無視されます。Proguardスタッフは、構築しているアプリプロジェクトでは、それ自体だけでなく、それが依存するすべてのライブラリを処理するために難読化などを決定します。そして、それは一般的にあなたが望むものです。

ただし、Android St​​udioでは、これと同じ効果を得るためにいくつかの変更を行う必要があります。基本的に、各ライブラリプロジェクトモジュールのbuild.gradleファイルには、次のようなものが必要です。

buildTypes {
    release {
        minifyEnabled false
        consumerProguardFiles 'proguard.cfg'
    }
}

Proguard.cfgは、ライブラリモジュールの独自のproguard構成ファイルです。

「consumerProguardFiles」の「consumer」という用語は、明らかにこのライブラリモジュールを使用しているアプリモジュールを指します。そのため、そのアプリからのproguardコマンドは、ライブラリモジュール自体のプロガードコマンドよりも優先的に使用され、明らかにこれにより、調整され互換性のある難読化が行われます。そのため、アプリモジュールからライブラリモジュールへのすべての呼び出しは、一致するシンボルで行われます。

これらの「consumerProguardFiles」エントリはインポートプロセス中に自動的に作成されません(少なくともそれは私自身の経験でした)。インポート中に作成されていない場合は、ライブラリモジュールのbuild.gradleファイルに編集する必要があります。 。

ライブラリプロジェクトを難読化して個別に配布したい場合は、個別のプロガードファイルが必要になります。私は自分でこれをやったことがないので、この答えの範囲を超えています。

アプリモジュールでは、次のようなものが必要になります。

buildTypes {
    release {
        minifyEnabled true
        proguardFiles 'proguard.cfg'
    }
}

(ちなみに、この記事の執筆時点では、アプリは正常に動作していますが、このアプローチを使用して実際に難読化されていることをまだ直接確認していないので、apktoolのような逆コンパイラを使用して、自分で確認してください。後でこれを確認し、その情報が得られたらこの回答を編集します)。

2番目の種類の問題は、Eclipseがライブラリプロジェクトを使用するアプリプロジェクトをコンパイルするときにライブラリプロジェクトのマニフェストファイルをほとんど無視するという事実に起因しますが、Android St​​udioでは、2つのインターリーブがありますこれは明らかに、アプリのマニフェストをそのライブラリのマニフェストよりも一貫して優先順位付けしていません。

これは、メインのアクティビティとして抽象的なActivityクラスを(ドキュメント作成の目的で)リストしたライブラリマニフェストがあるために発生しました。ライブラリを使用する各アプリのマニフェストで宣言された、私のアプリのこの抽象クラスからのクラス derived がありました。

Eclipseでは、ライブラリマニフェストが無視されたため、これが問題を引き起こすことはありませんでした。しかし、Android St​​udioでは、アプリのアクティビティクラスとしてその抽象クラスになり、コードがその抽象クラスをインスタンス化しようとしたときにランタイムエラーが発生しました。

この場合、2つの選択肢があります。

  1. ツールの構文を使用して、アプリマニフェスト内の特定のライブラリマニフェストのものをオーバーライドします-例:
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
       package="com.goalstate.WordGames.FullBoard.trialsuite"
       xmlns:tools="http://schemas.Android.com/tools"
       .
       .
        <application
           tools:replace="Android:name"

または、

  1. ライブラリモジュールのマニフェストから実質的にすべてを取り除き、アプリモジュールのマニフェストに依存してすべての値を提供します。ライブラリモジュールごとに have する必要がありますが、ヘッダーとパッケージ属性のみを含むベアマニフェスト要素ほど多くは必要ないことに注意してください。

私は両方を試してみましたが、より簡単な方法として、上記のアプローチ2になりました。ただし、ライブラリモジュールを個別に配布する場合は、各ライブラリモジュールの個々の要件を反映した、より意味のあるマニフェストファイルを作成する必要があります。

ライブラリマニフェスト自体に各ライブラリの要件(アクセス許可など)を設定し、自動インターリーブプロセスでこれらをアプリ用に宣言されたものと組み合わせることができる、より適切な方法がおそらくあります。ただし、Eclipseがライブラリのマニフェストを無視することを考えると、少なくとも最初はアプリマニフェストに完全に依存し、ライブラリマニフェストをむき出しの骨まで削除する方が安全であると思われます。

Eclipseプロジェクトのプロジェクトプロパティの一部、およびマニフェスト属性が、build.gradleファイルの一部を構築するために使用されることに注意してください。具体的には、build.gradleのcompileSdkVersionはEclipseプロジェクトプロパティからプロジェクトビルドバージョンに設定され、applicationIdはアプリのマニフェストからのパッケージ名であり、minSdkVersionおよびtargetSdkVersionもアプリのマニフェストファイルからコピーされます。 build.gradleの依存関係セクションは、プロジェクトのプロパティのライブラリプロジェクトの依存関係に由来します。

これにより、AndroidManifest.xmlの値の一部が冗長になり、おそらく残余になる可能性があります(つまり、未使用)。これにより混乱が生じる可能性があります。私の理解では、build.gradleの値は実際に効果があるものであり、targetSdkVersionのようなマニフェスト値はビルドの目的には使用されないということです。ただし、Google Playなどのアプリストアでは引き続き使用できます。特定の方法についてはわからないので、この時点でそれらを並行して維持しています。

上記の2種類の問題に加えて、SDKレベル23のみをAndroid St​​udioにインストールしたときに、プロジェクトビルドレベル22のプロジェクトをインポートするなど、より日常的なものがあります。その状況では、レベル22のSDKをインストールするよりも、コンパイルモジュールのbuild.gradleファイルを編集して、compileSdkVersionを22(インポートした値)から23に移動する方がおそらく良いですが、どちらの方法でも機能します。

このプロセス全体を通じて、何かが適切にビルドされず、それに対処するために変更を加えた場合、プロジェクトのビルド/再ビルドおよび/またはツール/ Android /プロジェクトとGradleファイルの同期を試してください。および/またはファイル/キャッシュの無効化/再起動、変更が完全に組み込まれたことを確認します。これらが本当に必要なのか正確にはわかりません。なぜなら、ビルドがまだ成功していないときはどれだけ増分的に行われるのかわからないからです。しかし、私はそれらをすべて迷信的な儀式としてかなり定期的に実行しました。それが役立ったと確信しています。たとえば、起動アイコンリソースが見つからないためと思われるResources $ NotFoundランタイムエラーが発生した場合、3つすべてを試してみたところ、問題は修正されました。

最初のEclipseプロジェクトで上記を実行し、ビルドが成功したら、運が良ければ、Android St​​udioディスプレイの上部にあるドロップダウンからアプリモジュールを選択できます。再生ボタンをクリックし、再生ボタン自体をクリックしてから、デバイスまたはAndroid仮想デバイスを選択すると、実行するためにアプリがロードされます。

同様に、ビルド/署名付きAPKの生成機能を使用して、アプリの署名付きコピーを作成できるはずです。署名されたコピーを実行すると、再生ボタンを使用すると表示されないインポート関連のエラーが表示される場合があるため、インポートが完了したと判断する前に両方が機能していることを確認する必要があります。

これに続いて、おそらくバージョン管理をオンにする必要があります。私は自分でgitを使用していますが、他にも多くのオプションがあります。

ほとんどの場合、バージョン管理はこの回答の範囲外ですが、インポートプロセスの影響を受けるものがいくつかあります。まず、Eclipseでは、さまざまなフォルダーにさまざまなプロジェクトがいたるところにあるかもしれませんが、Android St​​udioにインポートすると、すべてのモジュールがメインプロジェクトフォルダーの直接の子フォルダーとして作成されます。したがって、Eclipseの各プロジェクトに個別のgitフォルダーがある場合、または各グループの親フォルダーの下に整理されたプロジェクトの関連グループに(私が行ったように)ある場合、Androidにうまく変換できませんスタジオ。

Android St​​udioでバージョン管理をまだ行っていないため、これに関する私の知識は限られています。そのため、おそらく回避方法がありますが、Android St​​udioのすべてのバージョン管理プロジェクトレベルで統合されているため、すべてのモジュールは単一のgitアーカイブの下にあります。

これは、古いgitアーカイブを破棄し、インポートしたソースコードの新しいアーカイブで新たに開始する必要がある場合があることを意味します。そして、それは古いgitアーカイブを保持しておき、必要なバグ修正などを少なくともしばらく実行するためにEclipseで使用できるようにすることを意味します。また、プロジェクトの履歴を保存する必要もあります。

すべてのプロジェクトを単一のEclipseワークスペースの下で整理することができて幸運であり、それらのプロジェクトに単一のgitアーカイブを使用している場合は、古いgitアーカイブをAndroid St​​udioプロジェクトフォルダー内および下のEclipseワークスペースフォルダー。次に、Eclipseプロジェクトの関連する.gitignoreアイテムをAndroid St​​udioプロジェクトの自動生成された.gitignoreファイルに編集し、インポートプロセス中に変更された内容をgitに把握させることができます( /が移動されました-たとえば、マニフェストファイルがモジュールの最上位になくなりました)。他の人たちは、gitは何が変わったのかを理解するのにかなり良いと報告しています。私はこれを自分で試したことはありません。

ただし、これを行ったとしても、EclipseからAndroid St​​udioへの移行に先行するコミットに戻ると、Eclipse内からのみ意味のあるファイルのセットに戻ります。ですから、よく「難しい」ように思えます。特に、Eclipseはプロジェクトフォルダーの元のセットを引き続き指しているためです。

私は個人的に関連プロジェクトのさまざまなセット用に複数のgitアーカイブを所有していたので、Android St​​udioでgitをもう一度やり直すだけでよいと決めました。これを行う必要がある場合、バージョン管理内の古いコードへのアクセシビリティが失われるため、その場合に移動する前にコード開発の非常に安定したポイントになりたいため、計画に影響する可能性がありますAndroid St​​udioに移動したら、システム(インポート後のコードとマージする機能など)。

Gitに関連するこの回答の一部は、投機的です。これは、インポートしたプロジェクトファイルでバージョン管理を実際に行っていないためです。しかし、チャレンジのアイデアを与えるためにそれを含めたかったので、回答を更新する予定ですAndroid St​​udio内のバージョン管理をさらに行った後。

6
Carl

http://tools.Android.com/tech-docs/new-build-system/migrating-from-Eclipse-projects によると、いくつかの選択肢があります
-単にインポートする
-最初にEclipseから事前エクスポートします。

プロジェクトにEclipse固有の多くの関係が含まれている場合は、Eclipseからの事前エクスポートの方が適している場合があります。なので。 Eclipseが生成できるすべてを「翻訳」することはできません。 EclipseとA.Sを引き続き使用する場合このプロジェクトコードでは、これがより良い選択です。この方法を選択する場合は、上記のリンクを読んでください。いくつかの重要な前提条件があります。

ASにインポートするだけで、ASがプロジェクトを「翻訳」して再配置できるため、特にEclipseに戻るつもりがない場合に推奨される方法です。この場合、A.S。ウィザードがすべてを実行し、手動でgradleファイルを生成する必要はありません。

3
user3467994

上記のScott Bartaの回答に加えて、Eclipseワークスペースライブラリファイルへの参照がある場合、インポートの問題がまだある可能性があります。

/workspace/Android-support-v7-appcompat

一般的なものであること。

この場合、参照を提供するまで(そしてgitリポジトリからクローンを作成した場合、おそらくそこには存在しない)、独自のインストール(たとえば/ Android-sdk-macosx /など)を指すまでインポートは停止しますextras/Android/m2repository/com/Android/support/appcompat-v7)は認識されず、インポートが停止し、人のいない土地に残ります。

これを回避するには、Eclipseプロジェクトから入ったproject.propertiesまたは.classpathファイルでrefを探し、それらを削除/コメントアウトします。

<classpathentry combineaccessrules="false" kind="src" path="/Android-support-v7-appcompat"/>

これでインポート段階が完了し、以下のように Androidチュートリアル に示されているようにbuild.gradle(Module:app)にこれらの参照を追加できます。

dependencies {
    compile 'com.Android.support:appcompat-v7:22.2.0'
}
1
Mitch

より簡単な移行方法を次に示します。

サンプルAndroid St​​udioプロジェクトから始めます。 Android studioを開き、新しいプロジェクトを作成します(または)ここで 'sample'スタジオプロジェクトをダウンロードします。 https://github.com/AppLozic/Eclipse-to-Android-studio-migration 。次の手順に従って、Android St​​udioでダウンロードしたプロジェクトを開きます。

EclipseプロジェクトモジュールをAndroid St​​udioにインポートします。 [ファイル]-> [新規]-> [モジュールイメージのインポート]タイトルを選択します

次に、Eclipseプロジェクトのパスを選択し、モジュールをインポートします。 「Gradleプロジェクトの同期に失敗しました」というメッセージが表示された場合は、「ビルドツールのインストールとプロジェクトの同期…」をクリックしてください。

次に、以下の簡単な手順に従って、サンプルプロジェクトモジュールを削除します。

Settings.gradleを開き、「include ‘:app」を削除します。「app」モジュールを右クリックして「削除」します。さて、私たちが持っているのは、GradleビルドでAndroidスタジオで開いているEclipseプロジェクトです。

他にも役立つリンクがいくつかあります。

http://developer.Android.com/sdk/installing/migrate.html 出典: http://www.applozic.com/blog/migrating-project-from-Eclipse- to-studio /

1

Eclipse/ADTプロジェクトを取り込む最良の方法は、Android St​​udioに直接インポートすることです。最初にGO to Eclipse projectproject.propertiesファイルを削除します。

その後、Android studioツールを開き、Eclipseプロジェクト(Eclipse ADT、Gradleなど)をインポートします。

0

Android studio 3.0.1のインストールを停止し、2.3.3(安定バージョン)に戻ります。安定したバージョンを確認し、それらをたくさん見つけることができます

アンインストールして他のバージョンに戻る必要があります。はい、Gradleファイルを個別に作成するように求められますが、これは私にとってまったく新しいものです!

失敗は成功への足がかりです。

0
Ashok Kumar K R

簡単な手順:1. Android St​​udioに移動します。 2.開いているプロジェクトがある場合はすべて閉じます。 3.インポートAndroid St​​udio Projects(Eclipse ect)というオプションがあります。 4.それをクリックして、ウルプロジェクトを選択します

0
Touseef Ahmed