2013-06-14 4 views
22

私は、顧客ごとに異なるリソース(ブランド設定、設定、および顧客間の事前ロード済みデータ変更)を複数回構築する必要があるアプリを持っています。Android用のGradleビルドシステムをEclipseで使用することはできますか?

今年のGoogle I/Oの結果、新しいGradleベースのAndroidビルドシステムについて聞いたことがあります。だから私は、このワンソース/マルチプルアップスシナリオをGradleビルドスクリプトを使って実現することをお勧めします。

ここで私の質問が続きます。Eclipseに固執しながらGradleを使ってビルドを開始するにはどうすればよいですか?私がオンラインで見つけたすべての読書はまだ未成熟のAndroid Studioにプロジェクトを変換することを指します。私はAndroid Studioへの移行を延期し、Googleが本番用として「安全」と宣言しています。

理想的には、Eclipseのデバッグと実行構成にビルドスクリプトをフックできるようにしたいのですが、XCodeでさまざまなビルドターゲットを選択して選ぶことができます。可能であれば、それを実現するためにはどのようなステップが必要ですか?

私はこれらの質問のnoobish品質についてお詫び申し上げますが、私にとってこれは実際にはかなり未知の国です。どんな助けもありがとうございます。

編集: チームは2013年10月下旬にAndroidスタジオに移行し、バージョン0.4以降ではバグが少なくなりました。あなたの組織が開発のために1.0より前の環境を採用することについて非常に慎重でない場合は、冷たい水に飛び込み、Android StudioとそのGradleビルドシステムで作業することをお勧めします。 IMHOが欠けている唯一の重要なことは、ユニットテストのためのまともなサポートです。

+1

私の知る限りでは、現時点では、コマンドラインで自分自身を構築すること以外のEclipseからビルドするのGradleベースのための公式サポート、ありません。 Eclipse/Gradleプロジェクトのサポートは最終的に到着するでしょう。 – CommonsWare

+0

ありがとうございました、それでは、私はすでに無能に感じていません:-) – Chris

+0

しかし、公平で、あなたの目的を達成するための非公式な/サポートされていない方法がないかどうかはわかりません。 :-) – CommonsWare

答えて

24

2つのビルドシステム(Eclipse + gradleベース)を使用することは可能です。出力フォルダが異なることを確認してください(binはADT、buildはgradle)。 (TLの更新; DR:チェックNodeclipse/Enide Gradle for Eclipsemarketplace))

File -> Export -> Generate Gradle build filesちょうど以下コンテンツとbuild.gradleを追加(ただし、バージョンをチェック)します。既存のファイルは変更されません。

com.android.tools.build:gradleバージョンはthe latestである必要があります。 で述べたような階調タイプgradle buildの場合。詳細についてはgradle tasksをお試しください。 (私の遅いインターネット接続では、すべての必要な依存関係をダウンロードするためにgradleが1時間かかりました)

Vogellaチュートリアルhttp://www.vogella.com/articles/AndroidBuild/article.htmlはまだ準備ができていません。他のオンラインチュートリアルは実際に終了していませんhttp://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/

Eclipse ADTはまだgradleを使用していません。私はAndroidスタジオ内で最初に研磨されると思います。両方のIDEで進化する技術を同時に使用することは賢明ではありません。

下記のbuild.gradleの例を参照してください。既にgradleを習得していれば、Wizardsはまったく必要ありません。 最新のbuild.gradleクラシックAndroidプロジェクトのテンプレートgh.c/N/n-1/b/m/o.n.e.e.g/docs/android/build.gradleのテンプレート。

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

android { 
    compileSdkVersion 8 
    buildToolsVersion "19.0.0" 

    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') 
    } 
} 

ADT-BundleはEclipse Marketplaceに付属していないため、アップデートサイトを使用できます。Gradle Integration for Eclipseため

更新P2リポジトリは

http://dist.springsource.com/release/TOOLS/gradle

ですが、バージョン3.4.0のように、.gradleファイル用のエディタを提供していません。 Android開発用に持っている感覚はありません。

http://tools.android.com/tech-docs/new-build-systemのバグの流れが稀になったときに、実験用の補助ビルドとしてgradleを使用して、 と目を離さずに、デフォルトのADTビルドを行ってみましょう。 (これは正式なバージョン1.0の周りでなければなりません)

UPDATE:代わりにIDE固有のAndroid/Gradleのモデルを作成する2014年4月15日

Alex Ruiz's (from Android team) Blog about Android, Gradle & ADT

AndroidのGradleのモデル

、我々 IDEに依存しないGradleプロジェクトを表現することに決めました。このようにして、私たちは、維持しやすい単一の情報源を持っています。 IDE統合は、サポートされている各IDE(ここではEclipseとIDEA)のプラグインとして実装されます。このアプローチの主な利点は、IDE統合プラグインとは独立してGradleプラグインをリリースできることです。たとえば、AndroidのGradle側に影響を与えることなく、いくつかのバグ修正を含むEclipseプラグインの新しいバージョンを出荷することができます。

2014年4月日食-のGradleプラグインは、Android-Gradleのプラグインと互換性がありませんのとおり:

として(@arconeが提起した)のAndroidチームがIssue 57668に答え

プロジェクトメンバー#2 x ... @ android.com

eclipseプラグインはandroidプラグインと互換性がありません。

EclipseのデフォルトのGradleサポートを使用してAndroid gradleプロジェクトをEclipseにインポートすることはできません。

それは我々がEclipse用のGradleプラグインを変更する必要がありますEclipseで動作させるために、AndroidのチームはIntelliJのためのGradleプラグインに取り組んでいるされて我々はIntelliJの

でGradleのサポートを変更しているのと同じ方法とEclipse用のgradleプラグインも更新する必要があります。

移行時間を平滑化するためにeffort at Nodeclipseがあります。そして、まだgraleを試しながら、あるいは完全に使ってEclipseで開発を続けてください。

Nodeclipse/Enide Gradle for Eclipsemarketplace

Eclipse用のGradleのためのいくつかのスクリーンショット:

+2

うわー、答えを更新していただきありがとうございます。一方、私たちのチームは完全にAndroid Studioに移行しており、とても満足しています。私はこの答えは非常にAndroidビルドシステムの問題を検討している他のdevsのために役立つと思う。再度、感謝します! – Chris

+1

時間はすべてを解決しますが、新しいソフトウェアに突入することが予想よりも多くの時間を費やすことがあります。 2014年4月現在、gradleベースの新規ビルドシステムは0.9で、最終1.0リリースになりそうです。より広く採用する時期が来ている。 –

+1

Googleチームは、eclipseでgradleを使用してAndroidアプリを構築するサポートを完全に無視しているようです。 – Martin

1
  1. はGradleのをインストールします。 http://gradle.org/gradle-download/ b。以前のリリースのセクションから2.1を選択してください。 c。便利なフォルダに解凍してください(例:D:\ Graddle \ gradle-2.1) d。システム環境変数を設定します。 i。 GRADLE_HOMEはD:\ Graddle \ gradle-2.1) ii。 GRADLE_OPTSを-XX:MaxPermSize = 512m iii。 %GRADLE_HOME%\ binをパスに追加 iv。 ANDROID_HOME(例:D:\ android-sdk)を設定します。 vパスに "%ANDROID%\ platform-tools"を追加します。

e。コマンドプロンプトを開き、gradleをチェックします。確認するためにgradle -versionを使用することができます。

  1. Gradle eclipseプラグインをインストールします。 a。 Eclipseを起動する b。ヘルプ> Eclipse Market Place c。検索 "gradle" d。その中で "Nodeeclipse/enide"を選択してください e。すべてのリストを選択し、インストール&を受け入れます。 f。一度インストールするとEclipseを再起動します。

  2. セットグレード& Javaホーム: a。 Eclipseを起動します。 b。ウィンドウ>環境設定> Gradle EnIDE c。設定されていない場合は、これらを設定します。 i。使用するGradleホームが設定されている(例:D:\ Graddle \ gradle-2.1) ii。使用する別のJAVA_HOMEが設定されている(例:C:¥Program Files(x86)¥Java¥jdk1.7.0_60) iii。 GRADLE_OPTSのJVMオプションが "-XX:MaxPermSize = 512m"に設定されている

  3. プロジェクトをビルドします。 a。 eclipse JavaエクスプローラでAPKを展開します。 b。 build.gradle を右クリックします。 Run As> Gradle GUI d。 Comand Line:グラデルクリーンビルド e。ビルドが完了するまで待ちます:最初のビルドには数分かかります。 f。 Build dexエラーまたはJavaヒープ・スペース・エラーの場合: i。エディタでbuild.gradleを開きます。 ii。マルチデックスビルドの場合 - java(javaMaxHeapSize = 32ビットJavaでは1024M、64ビットJavaでは2048M)に基づいて適切なjavaMaxHeapSizeを設定してください iii。デバッグビルドの署名を避けるために署名をコメントすることができます(// "$ rootProject.projectDir/jenkins_config/gradle/signing.gradle";から適用)。 iv。これらの修正の後に再度ビルドしてください。

  4. デバイスでビルドをインストール: a。デバイスをm/cに接続します。 b。 build.gradle を右クリックします。 Run As> gradle installDebug Gradle Androidの起動 d。インストールが完了するまで待ちます

  5. デバッグビルド: a。アプリを起動します。 b。デバッガを接続します(DDMS>デバイス>アプリケーション)。 c。チェックされた少数のデバイスでデバッグすることができました。

関連する問題