AndroidStudio,eclipse(ADT22),IDEA13EAP 関係の相互移行を確認してみた
前回のエントリはこちら
IDEAの伝道師 エキスパートの @masanobuimai さんが比較表まとめられていたので追記
比較表の見方がわからんのだけどレイアウトが崩れてるのかな URL
@yusuke_kokubo てきとーですいません。CEにあるのが正でAndroid Studioに丸ついてるのが,Android Studioに入ってるプラグインです。そしたら,Android Studioにしか入ってないのもあった。...という補足を後で付けておきます。
@masanobuimai あ、だからCloudEndpointsはAndroid Studioに●なのですね
@yusuke_kokubo そす。案外できない事だらけです。
JAVA_HOMEで起動できない人は、ANDROID_STUDIO_SDK
って環境変数も別途容易されているとのこと
android studioが起動しない場合 URL JDK1.7はだめらしい
@yodatomato JAVA_HOMEをきちんと設定できてないと思う。JDKのあるパスをJAVA_HOMEに記載するか、ANDROID_STUDIO_SDKって環境変数追加してそっちにJDKのパス入れればいけたはず。
2013-05-20 23:08:49 via Silver Bird to @yodatomato
実はこれだけだと言葉足らずで下記な対処は必要。macもJDK7は同じ構造なのでいけるかと思う
どの階層からぶち込めば気が済むんだ…
'tools.jar' is not in Android Studio classpath.Please ensure JAVA_HOME points to JDK rather than JRE.
@kimukou2628 Winです…
2013-05-26 00:40:00 via Krile2 to @kimukou2628
@kimukou2628 JREは読めたけどtools.jarが見つからないみたいで…
2013-05-26 00:40:55 via Krile2 to @kimukou2628
@kimukou2628 JDKのほうのJREの中にtools.jarがなく、/libの方にあるみたいです…
2013-05-26 00:44:00 via Krile2 to @kimukou2628
@kimukou2628 tools.jarを試しにASのlibディレクトリに単体でぶち込んだら起動しましたw アドバイスありがとうございました!
2013-05-26 00:49:13 via Krile2 to @kimukou2628
な話。tools.jarが見えなくて動かなくなったみたいなネタ
@kimukou2628 なるほど、そういうことだったんですかw
2013-05-26 00:52:44 via Krile2 to @kimukou2628
さて本題。
“EclipseのプロジェクトをAndroid Studioへインポートする | Tech Booster” URL
“既存のAndroidプロジェクトをAndroid Studioに移行してみる - Android(アンドロイド)情報-ブリリアントサービス” URL
eclipse上でgradle実行構成を作る場合
- gradleプロジェクトでは Androd プロジェクト構成とぶつかる ので
- http://kinjouj.hatenablog.jp/entry/20121224/1356333578 みたいな話をしてしまうと。。
- Android アプリケーション開発: Gradle Android プラグインで Android アプリをビルドする で外部実行構成を作っておいてください
環境パスの指定のお話もありますが
- gradle.properties
# 0525 systemProp.XXX の形でないとgradle1.6では認識できないようなので修正 systemProp.ANDROID_HOME=/Application/android-sdks systemProp.JAVA_OPTS=-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8
を作成すれば要らないはずです
各プロジェクト直下に入れるの面倒とかいう人は
- $HOME/.gradile
フォルダに入れればOK
1) AndroidStudio
- 直下にbuild.gradleファイルがあれば実行する形
- gradleの仕様上、一応空でも同じ位置に settings.gradleがあれば動くのでそこからマルチプロジェクト構成で動いてる
- 実行自体はgradewでgradle 1.6ランタイムでうごいてる
- 現状jetGradleのようなウインドウがないので gradleコマンドをタスク指定して実行はできないよう
- 下の方で書いてるけど しおしおさん によると[外部実行]登録すればいいんじゃない? とのお話が。。。
distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip //☆
Android Studioって、初回にgradle取ってきたりするから、実はスタンドアロン or 閉鎖環境じゃ動かないんじゃないか?これ。
@masanobuimai $HOME/.gradle/wrapper のフォルダを他に持ってくるという考え方では駄目? そもそもandroid maven project 自体が netからjar落としてきて一緒にコンパイルという思想だと思う
を閉鎖環境の鯖のURLに変更すれば閉鎖環境でも使えるとは思う
distributionUrl=XXX
あとは build.gradleの編集あたりかも(こっちは実行時に落としてくる
- android_yutori
- yutori_hisory
- build.gradle
- yutori_hisory
buildscript { repositories { //maven { url 'http://repo1.maven.org/maven2' } maven { url 'file://opt/repo/maven' } //maven { url 'file:///c:/opt/repo/maven' } //winならこっち? } dependencies { classpath 'com.android.tools.build:gradle:0.4' } }
- /opt/repo/maven のフォルダ作る
- The Central Repository Search Engine からjarを落としてくる
- mavenと同じように階層をさらに掘る
- gradle-libs/gradle-04.jar を置く
まあそれもめんどいなら
buildscript { repositories { //maven { url 'http://repo1.maven.org/maven2' } flatDir(dirs: file("$projectDir/gradle-libs")) } dependencies { classpath 'com.android.tools.build:gradle:0.4' } }
- カレントフォルダに gradle-libs フォルダを作る
- gradle-libs/gradle-04.jar を置く
でもOKだけど。
あとmaven系からDLしてきたのは下記にあるのでコピーとか必要かも
gradle(build.gradle) | $HOME/.ivy2 |
maven(pom.xml) | $HOME/.m2 |
を他の端末にコピーして持っていくイメージ
まあイマイ先生は古くからIDEA使いこなしてる
mavenモヒカンだからな−。そこら辺いまさら言わせんな 自分で考えろ感覚なんだろうけど(苦笑
リアルに
GUI卒業=>ant卒業=>maven使いこなしてる
人ってどのくらい要るんだろうね−
@kimukou2628 やはりまだまだEclipseも捨てられませんね。ASも0.1ですし。既存の環境も残したままですしASが1.0になるまで徐々に移行できたらなと思っております。
http://twitter.com/kimukou2628/status/336514851440566272:twitter:detail:right
@kimukou2628 Eclipseしかさわってない人ならantすら使えない人もいますからね。mavenに移るのは悪くないかと思いますがついてこれる人がどれだけいるやら・・・。
まあ会社でもほぼ同じ感じかな。
気が向いたら環境構築して後々さわる(かもしれない<多分正確には動作確認するかも)
だから手順書だけは起こしておいてみたいな・・。
まあIOSが売れてるプラっとホーマーだから仕方ないかね−。
サムライズムの先生には悪いけど
[AppCodeのなんで無料版がないんだ!]
と息巻いてるお仕事場です><*4
一応会社的には ADT22はバグ持ちなので、updateをしないように=>21でホールドしてる環境からSDをコピーして持ってこいな流れになってたな。まあUnityやcocos-2d用の変換に使うライブラリの認識だとするとそういう認識になるか。。(素で触ってるのごく僅かな人だし
で、新規環境に入れるとき ADT21用のeclipse ADT pluginが落ちてくるんだろうか? みたいな話を上の人達が延々と議論してたような・・試してみれば早いんだろうけど環境作るのが面倒くさいんだろうね−。まあ気持ちはわかるけど。。。
AndroidStudioで新規プロジェクトで生成されるbuild.gradleファイル)
- android_yutori
- build.gradle (空)
- settings.gradle
include ':yutori_history'
-
- yutori_hisory
- build.gradle
- yutori_hisory
buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 4 targetSdkVersion 17 } }
前回の試しではこのファイルをコピってきてeclipse上で動かす試しをしていた
=> 色々とうまく行かなかった
dependencies { //compile files('libs/android-support-v4.jar') compile fileTree(dir: 'libs', includes: ['*.jar']) }
書き換えたりとか・・
2)eclipse3.7 & ADT22
eclipse上でのADT22からの
と生成されている *6
apply plugin: 'android-library'
- dependencies 記述が無いので手動で追加する必要はあり
つうかlibs固定な話になってるので
dependencies { compile fileTree(dir: 'libs', includes: ['*.jar']) }
をデフォルト生成テンプレートに追加して欲しいかな‥‥
- ちょっとだけ微妙に頭がいい状態。
- ただ ASだと [ targetSdkVersion 17] となってたのが
- ADT22 exportだと [targetSdkVersion 4] となってるのは気になる。。。問題ないの??
- 普通のプロジェクト
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { } android { compileSdkVersion 17 buildToolsVersion "17" defaultConfig { minSdkVersion 4 targetSdkVersion 4 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } }
- ライブラリプロジェクト
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android-library' dependencies { } android { compileSdkVersion 17 buildToolsVersion "17" defaultConfig { minSdkVersion 4 targetSdkVersion 4 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } }
でこの自動生成されたやつだとaidlのコンパイルが通る。
なんで?? と MacでWinMargeをX経由で動かして比較してみたら
なんですね・・勘弁してくれっす。。。><
公式サイトの記述)
http://tools.android.com/tech-docs/new-build-system/user-guideaild.srcDirs = ['src']
自動生成)
aidl.srcDirs = ['src']
3)
IDEA13EAPで見てみようと思ったら
gradleがうまく認識させられないみたいで、gradle設定が違うっぽい
ASはどうも IDEA13EAPベースっぽいかな。。。
- IDEA12
- IDEA13/AS
A) IDEA12 => eclipse37
IDEA12 でAndroidプロジェクト作成
new=>File
- build.gradle 作成
repositories {
mavenCentral()
}
apply plugin: 'eclipse'
jetGradle で [gradle eclipse]タスク実行
- eclipseのプロジェクト設定ファイルが作成される
- eclipseにインポート
エラーが出る場合は
javaビルドパス => 順序及びエクスポート
チェックつける
コンパイルが通った状態で
export=> Android=>Generate gradle build file
を実行。これでASでも動かせるようになったはず。
B)AS =>eclipse37
これが一番ひどかった。。。
new=>File
- build.gradle 作成
repositories {
mavenCentral()
}
apply plugin: 'eclipse'
対象プロジェクトのコマンドラインから
./gradlew eclipse
- eclipseのプロジェクト設定ファイルが作成される
まあ android maven project ってそういうもんなんで
だから
を普通のandroid project形式に直したんだもんな。。 ADTで認識せ−へんので。。。(汗
C) eclipse37 =>IDEA12
<= これが一番現実的☆
eclipse37&ADT22環境で新規Androidプロジェクトを作成
build.gradleを上書きしたくない場合は,_build.gradle等で別ファイルで作成
一応 -b コマンドで実行出来ます
- _build.gradle
repositories {
mavenCentral()
}
apply plugin: 'idea'
Android アプリケーション開発: Gradle Android プラグインで Android アプリをビルドする で外部実行構成で実行するなら
-b _build.gradle idea
で実行は可能です
- => IDEAのプロジェクト設定ファイルが作成
- export=> Android=>Generate gradle build file
でbuild.gradleファイルを作成
この状態だとJetGradle等 でコケるので
local.propertiesを新規作成するか、他のプロジェクトからコピーしてきてください
ADT22 新規プロジェクト作成 ヤバイわこれ。。。 local.properties 書き出さなくなってる‥‥‥
- local.propertie
sdk.dir=/Users/XXXXX/android-sdks
ADT22速くパッチでないかな‥‥‥
でもまあ ADT22で
ADT22 debugキーのfingerprintが見れるようになったのは地味に便利かも。
この操作をすれば
IDEA側から OpenProjectで開けるようになる。ASも問題なし
注)
gradle idea コマンドだと
javaプロジェクトとしてプロジェクト設定ファイルを作ってしまうようで
- ProjectStructure => SDK:AndroidSDK 選択
をする必要があります
あとeclipseと違い IDEAは libsを標準で認識しませんので
な感じで
- [+]ボタンよりディレクトリを登録する
- exportのチェックもつける
必要があります
まあIDEA12にはLibraryProjectがmavenで遣らないといけないから大変
というイバラの道が有るわけなんですけどね。。単一プロジェクトならまあ問題ないのでは?
@kerukerupappa よかた。さすが。今ActionBarSherlockのサンプル動かしているのだけど検索してたらケルさんのブログが出てきて、はるか100万年先を行っていた!!!
@sakura_bird1 なんのやつです?mavenぐらいしか書いてないような気がします。
2013-05-17 18:37:49 via web to @sakura_bird1
@kerukerupappa それそれ。さっきIDEA挫折してEclipseでサンプル動かしてるからさ…orz
@sakura_bird1 なれないとideaでsherlock動かすのは手間ですね。結構ハマります。ただsherlockを動かせるようになるとideaのmavenの機能をマスターできるので頑張る価値はあります。
2013-05-17 18:41:11 via web to @sakura_bird1
@kerukerupappa ありがとうございます。一息には無理そうですが、きっと出来るようになります!多分。
@sakura_bird1 頑張ってください!
2013-05-17 18:58:00 via web to @sakura_bird1
“ニクログ: ActionBarSherlockでActionBar対応したメモ” URL
あー、動く方のapkにはライブラリプロジェクトのも入ってるが、AndroidStudioで作った方はそっちが取り込まれてないんか。 えーっと、ライブラリプロジェクトも一緒にするにはどうするんだろう
@sos_jpcompile project(':libraries:lib1') の場合は メインプロジェクトに下に libraries/lib1/ソースの下全部コピー な構成に<gradle multi project自体が相対パス指定無理なので
2013-05-18 16:44:04 via YoruFukurou to @sos_jp
@kimukou2628 おぉ、そんな強引な方法が!
@sos_jp IDEA12の場合は LibraryProject(ActionBarShalockを使うプロジェクトの場合)LibP maven buildトリガーセット MainP maven build後のjar参照 =>buildな連携イメージ(ココ敷居
2013-05-18 16:50:36 via YoruFukurou to @sos_jp
@kimukou2628 なんとまぁ…
LibraryProject(ActionBarShalockを使うプロジェクトの場合)
LibP
maven buildトリガーセット
MainP
maven build後のjar参照 =>build
な連携イメージ(ココeclipseユーザには敷居

に解決編の記事があります
IDEAからのgradle task指定の実行の仕方)
@mike_neck URL 見てるんですけど IDEA 上から task指定して build.gradle ってどう実行するの?
2013-05-17 13:15:54 via YoruFukurou to @mike_neck
@mike_neck 成る程。defaulTaskを書くしか無いイメージなんですね。ありがとうございます
2013-05-17 13:18:03 via YoruFukurou to @mike_neck
@_siosio_ @mike_neck ありがとうございます。IDEA12だとjetGradleでOKでした。ただIDEA13EAP,ASだとそこら辺認識しない & gradle位置指定できないようなんですけど。。これってgvm前提なのでしょうか?
2013-05-17 13:28:35 via YoruFukurou to @_siosio_
@_siosio_ @mike_neckIDEA12 URLIDEA13EAP/AS URL なイメージです Pluginとしてはgradle入ってるみたいなんですけど。。。
2013-05-17 13:32:39 via YoruFukurou to @_siosio_
IDEA で jetGradleウインドウって意識的に出すのはどうするんだろう? 標準で出てたから気にしたことがなかった。。。(汗
http://twitter.com/_siosio_/status/335258921755348992:twitter:detail:right
@_siosio_ ですね。。今回話題のASが どうもIDEA13EAPベースっぽいので、IDEA12 と同じように動いてくれないと厳しいですね。。(苦笑。コマンドライン前提になってしまう。。 IDEA上からワークスペースをロケーションとしてコマンドライン実行とかできますか?
2013-05-17 14:08:25 via YoruFukurou to @_siosio_
http://twitter.com/_siosio_/status/335265300972961792:twitter:detail:right
参考サイト>
IDEAで外部実行、あとで確認)
AVDに関して)
eclipse と IDEAでうまく共有できない疑惑が。。
@kimukou2628 Android Studioを試しているんだけど、Eclipse上のADTのAVDで作ったエミュレータがすべて動かない。ターゲットも4.2.2しかリストにない。キムコウさんは、トラブっていない?
2013-05-17 11:05:35 via web to @kimukou2628
AS自体はtarget-17のものしか持ってないようですね。。
AndroidSDKは同梱のようです
@kimukou2628 今気づいたんだけど、Studioの方で、Tools - Android - SDK Managerを開いて、packageをインストールしないといけないっぽい。Eclipseの方でpackage更新やっていたんだけどね。連動しないのかなぁ?
2013-05-17 11:14:12 via web to @kimukou2628
@penguindaa ASの方で動いているAndroid SDKが違うのでだと"/Applications/Android Studio.app/sdk/tools/emulator" -avd Intel_v10 -netspeed full -netdelay none
2013-05-17 11:22:02 via YoruFukurou to @penguindaa
@kimukou2628 Android SDK Managerでpackageを追加していたら、ディスクの空きがないと言われて、追加が不完全になりました。VirtualBox仮想マシンなので、ディスクイメージを拡大しないとダメです。めんどくせー。
2013-05-17 11:36:59 via web to @kimukou2628
Android Studio @penguindaa さんの指摘通り、既存の $HOME/.android にあるavdが認識しないみたい(バッテン表示。新規作らないと駄目みたいだな(新規作成のは認識)どこにavdの設定吐き出してるんだろう??
2013-05-17 11:36:48 via YoruFukurou to @penguindaa
Android Studio AS上で作成したAVDは eclipse上からは認識できない状況だな。。。うーん。これって IDEA側のAndroidのAVDの作成場所依存なのかしら‥‥‥
@kimukou2628 もうちょっとeclipseの方が無難ですかね?
2013-05-17 12:05:29 via twicca to @kimukou2628
@bevel_gear いまいさん が仰るには Wizard/初期プロジェクト構成(eclipse形式 か android ,mavenproject形式か) 以外は基本Android Pluginと同じではないかとお話なのでIDEA Android Pluginの制限ぽい気も
2013-05-17 12:09:30 via YoruFukurou to @bevel_gear
@penguindaa @kimukou2628 ・)つ eclipseを捨てる。
2013-05-17 12:23:16 via web to @penguindaa
http://twitter.com/penguindaa/status/335235236256440321:twitter:detail:right
@penguindaa @bevel_gear SDKが同梱なので、外部指定すれば同位置でな気がするんだけど( IDEA Androidは PratformSetting=>SDKSで追加可能 このビューあるんだけど追加不可=> jar等の位置は差替してみたけど変化無
2013-05-17 12:29:21 via YoruFukurou to @penguindaa
@penguindaa @kerukerupappa 実機では問題ないので、実機でやれって言うことじゃね? TDDクラスタの方々にはウケ悪そうだけど‥‥
2013-05-17 12:30:23 via YoruFukurou to @penguindaa
@kerukerupappa @penguindaa さっきのAVDの件は IDEA13EAPで見てみたら may be incompatible with your configuration と出るのでeclipse のAVDと IDEA のAVDの互換性ないからのよう
備考)
一応参照してるAndroid SDKの位置を変更する方法は
にまとめています
本来はASだけでデモ環境が完結しなければいけなかったのが
変にシステムのANDROID_HOMEを見てしまっている所があって
eclipse側にも大惨事って感じがADT22騒動な感じがしますよね−(汗
追記)
Android Studio で Google Maps Andoird API v2のデモプロジェクトをビルドして実機で動かすまで - sos の 作業メモ
AndroidアプリをGradleでビルドしてみる(2) - fkm 〜 Super Software Entertainerへの道 〜
の記事読んでて思ったこと
- gradle.properties を追加
ANDROID_HOME=/Users/XXXXXX/android-sdks JAVA_OPTS=-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8
@sos_jpあと環境によってシステムプロパティの書き方違うかも。あとカッコも JAVA_OPTS='-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8'or systemProp.JAVA_OPTS='XXXX'
2013-05-23 15:30:48 via YoruFukurou to @sos_jp
# 0525修正 systemProp.を付けないと最新版gradleでは読み込まれないよう systemProp.ANDROID_HOME='/Users/XXXXXX/android-sdks' systemProp.JAVA_OPTS='-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8'
と書いておいたほうがいいかもしれない。。
- build.gradleを修正
dependencies { //compile files('libs/android-support-v4.jar') compile files("$ANDROID_HOME/extras/android/support/v4/android-support-v4.jar") }
とかでは駄目なんだろうか‥‥‥‥‥。まああくまでビルドを通すだけって観点ですが。
- IDEA/ASで追加jarの補完を聞かせたい場合は
- sosさんが遣られた 作業メモ をやらざるを得ないのですけど..*7
というかeclipse みたいに libs をIDEA上で自動認識してもらえないもんなんですかね(汗
正確には dependencies 記述あたりをば、、、
まあココらへんの設定って
- local.propertie
sdk.dir=/Users/XXXXX/android-sdks
に書いているはずなんで、gradle.properties に設定しなくても
local.propertie を読込=>値設定する taskを作ればいい気もするんだけど
ADT22で生成されないってのは今後 廃止なん? それともテンポラリバグ?
gradle使う人は
をまず読みましょう。
@literalice さんは
でgradleのユーザガイドを翻訳されている方です。