ADT22 の gradle eclipse export形式でリアルに使えるのか試してみた
TLで
- IDEAがgoogle様に認められた!
- gradle の知名度が上がった
マンセーな話ばかり出てくるので
ちょっと実際にできんの?ってことで試してみます。
一応
も目は通してるんですけど、これIDEAの設定講座では?*1
あと はてブのリンクはやたら流れてくるけど
リアルにためしたって話はあんま聞かないんだよなー
まあ有名な方が書いたから間違いない!
って感じなんだろうけど。。。
あとeclipseから生成した場合は
ADTのPluginのほうが
- ANDROID_HOME/tools/templates/gradle/wrapper
あたりから自動コピーしてくれないので、これは今後の課題系なんですかねー
ということで
- 手動で上記のパスからgradlew辺の構成を各プロジェクトにコピーしておく
- 手動でローカルにgradle-1.6を落としてパス通しておく
- gvm でインストール
curl -s get.gvmtool.net | bash
gvm install groovy
gvm install gradle
-
- 場所は下記に入ります
あたりのことはしておく必要があります
$HOME/.gvm/gradle/current
gvm自体のインストールは
- http://blog.luxa.jp/archives/616
- Windows(7)環境でgvmをインストールする - mike、mikeなるままに…
- Gradle Support in IntelliJ IDEA. - 418 | I'm a teapot
あたりを参照してください
でLibraryProjetをeclipseで参照の上進めます
と同じように
標準の方式は
Import Project => [Create project from existing sources]
で。
備考)
ASで libraryPを使ったeclipseのやつ下記な形でimportすると凄いことに(汗 File > Import Project. Create project from existing sources LipPオートコピ&実際動かせないのができるorz
コマンドライン実行と共用してる(もしくは動作確認してる)方は
事前に
してからのほうがいい感じですね(事前にgradlewでbuild環境作っておくとハマると)
./gradlew clean
v0.1での挙動)
- libraryProjectが直下にフォルダ掘ってコピーされた
- settings.gradleが自動生成された
でもこの挙動が確認できたのが
v0.1 で v0.1.1 では再現確認できなかったのは直ったから?
というか一時補完機能停止?
下記は v0.1.1の挙動
A)
MainP | Import Project => [Create project from existing sources] |
LibP | Import Project => [Create project from existing sources] |
の形式で試してみます。
- dependenciesModule 参照で
クラスに関しては補完が聞きますが
リソース参照までは出来ない => エラーが出て先に進めないようです
v0.1.1でImport Projectすると単なるAndroidProjectとしてImportされてしまうようです
B)
MainP | Import Project => [Create project from existing sources] |
LibP | Import Project => [Gradle Project] |
settings.gradle等を作ってくれないので
A)と全く同じ挙動になりますね
C)
MainP | Import Project => [Gradle Project] |
LibP | Import Project => [Gradle Project] |
- Create project from existing sources
- Gradle Project
の違いは、
- ProjectStructureを初期にある程度弄ってくれるか
- adbコマンドによる実行構成を作ってくれるか否か
なので
自分で整形する人はこちらの形のほうが変な構成importしなくていいかも
adb実行構成あたりは
- 実行=>設定の編集あたり
ここは気づいてる人は、[Create project from existing sources]デフォルトで作ると
エミュレータになってるのでUSBデバイスにまず変更するから気づいてる人は多いはず。
肝は 下の実行前に [Make]トリガーを実行するという処みたい*2
ここがeclipseユーザから言わせると違和感はあるよな。。。
v0.1.1だとProjectStructure等も開けなくて支障が出るので
とりあえずv0.1に戻して先に進めます
B)の構成でimportして、libs/dependencyModuleすると下記のような表示になります
ちゃんと Android-Gradle のfacetが追加されているようですね
とりあえずgradleコンパイルが通らないと先に進まないので
な構成を作りました
メイン側 | abstest_ec |
ライブラリ側 | actionbarsherlock_ec |
備考)
- メイン側には settings.gradle等を追加する必要があります
build.gradle //☆1B
settings.gradle //☆1S
abstest_ec
build.gradle //☆2B
settings.gradle //☆2S
actionbarsherlock_ec
build.gradle
で
☆1Bが成功
☆2Bが失敗
で☆2Bで引っかかるのは ☆2Sの
自身のモジュール宣言がうまくいっていないからのようです
試行1) 自分自身はrootで見えているわけですから
- abstest_ec/settings.gradle
上から自分自身の宣言を外してみます
settings.gradle
//ProjectRootDir=rootDir ProjectRootDir=settingsDir println "ProjectRootDir=$ProjectRootDir" //[TODO]自分自身は見えてるわけなので、include や includeFlatじたいが冗長みたい /* root_name="abstest_ec" includeFlat root_name //仮想パス root_prg = project(":$root_name") //開くときには[:]が必要 //root_prg.projectDir=new File(rootDir) println "[name]=" + root_prg.name println "[dir ]=" + root_prg.projectDir */ library_name="abs" includeFlat library_name //仮想パス lib_prg = project(":$library_name") //開くときには[:]が必要 lib_prg.projectDir=new File(ProjectRootDir,'../actionbarsherlock_ec') println "[name]=" + lib_prg.name println "[dir ]=" + lib_prg.projectDir
確かに abstest_ecを基準にして
./gradlew clean build
で build/apk フォルダにapkを作るようになりました。
ちなみに
初期化設定は init.gradle でなんて記事も出てきますが
- multi project では動かない?
- userHomeDir/init.gradle は
- $HOME/.gradle/init.gradle は動かなくなった
な感じで、頭で
- abstest_ec/build.gradle
apply from: 'init.gradle'
としないと駄目な感じ。
あと上位で実行する場合と実行タイミングが違うので挙動も変わると。。。
とかとしないと駄目みたい‥‥‥
android gradle pluginのバージョンアップ( v0.4.1 )で一つ良くなったところは
allprojects{
version = '1.0'
}
の定義が不要でも動くようになったようです。ちょっとだけ楽になるかも
でココで解決すればいいのですが、
この構成だとASさんが
何処をカレントフォルダとして認識してるのか不明でして
微妙でうまく実行出来ません
というかASの構成から見ると
メインプロジェクトのディレクトリの settings.gradle
の一番最初のモジュールを動かそうという挙動に見えたりとか
<今登録済みがlibrary-projectだけなので実行できないように見える。
なエラーが出てしまいます。
IDEAエキスパートの方が
【Android Studio v0.1.1の話】「ライブラリ追加できないじゃん」と思うけど,実はv0.1のころから,プロジェクト開き直すと,build.gradleに指定したライブラリをダウンロードして設定できてたんだよ(ただいろいろ制限あるけどね。
AS 0.1.2 ProjectStrcture 警告は出るけど開けるようにはなった。0.1.1よりはましなので状況は見てみる
ちょっと IDEA android pluginの中みてみるとこんな感じだしな。。(汗
settings.gradleにincludeが勝手に入るようになった? 前からだっけ?
@kimukou2628 includeFlat認識しないんですねー。ライブラリプロジェクトは子に入れろということっすね。
http://twitter.com/kimukou2628/status/340294334895243265:twitter:detail:right
http://twitter.com/kimukou2628/status/340298610866532352:twitter:detail:right
AS 0.1.1メモ)
Android Studio 0.1.1 settings.gradle 等をいじった構成だと プロジェクト構成が認識できない=>開けない の処置される‥‥‥なにこれ。。。0.1 では開けてたのに。。 URL
Android Studio 0.1.1 バージョンアップに関しては、バグりそうな挙動のところは全部とりあえず封じたような対応だな。。eclipseから importした系も Android-Gradleのfectの設定が v0.1.1で開いたら無い感じだし。。
Android Studio 0.1.1 試しに新規プロジェクト作ってみたら ProjectStrucure封じた =>ASベースではIDEAの保管は効かせられません eclipseベースのプロジェクト IDEA12ベースの通常プロジェクトとして認識
Android Studio 0.1.1 v0.1にダウングレードしたいけど、どうすればいいんだろう? upしてない端末からもどすしかない?
Android Studio 0.1 にもどすには昔のdmgから再展開するのがはやそうだな・・。 0.1.1はちょっと様子見
Android Studio 0.1.1 新規プロジェクトのアイコンを別画像 & 編集すると ASごと落ちてる現象の改善は確認した。新しくして感じた改善差分ってこれぐらいかな?
TL上のメモ)
URL Android Studio Ver.0.1.1 …これはひどい…
はてなブログに投稿しましたAndroid Studioが Ver.0.1.1 & SDK Toolsが 22.0.1になりました - sos の 作業メモURL
ASだとこういうのエラー出てるらしいです(汗
まだ IllegalArgumentExceptionとか出てくるし、いろいろとバグは残ってるんだろうな… AndroidStudio
@sos_jp その話知りたいかも。
2013-05-29 13:55:38 via hamoooooon to @sos_jp
@kimukou_26 あ、なんだか起動時に @NotNullでGradleProjectDataService.customizeModuleがnullだと怒られてるっぽいです。 動作に支障はなさそう
2013-05-29 14:43:25 via YoruFukurou to @kimukou_26
v0.1.1 だと不安定って話。
ProjectStructure開けないんで確認しようがない。。。
補完周りの挙動がすごく怪しい…?
2013-05-29 15:37:32 via web
@epy0n0ff なんか今回のバージョン 突っ込まれた処とりあえず封じたように見える。。ProjectStructureが開けなくなってるのでそこら辺が悪さしてるかも
2013-05-29 15:52:28 via YoruFukurou to @epy0n0ff
@kimukou2628 antからの環境ではProjectStructure開けましたー。ただ突然起動時にCompileThreadで落ちたりするようになりますね。
2013-05-29 16:45:02 via web to @kimukou2628
@epy0n0ff 自分の場合はコンパイル通りませんでした(汗。うーん。とりあえずIDEAのエディタ機能だけ賞味してもらおうって方針に変えたのでしょうか。URL 構成時に「不正な構成です。削除しますか?」=>バッサリ はなくなりましたけど(汗
2013-05-29 16:50:07 via YoruFukurou to @epy0n0ff
Android Studio v0.1.1(build-130.677228)がリリースされたようです URL
の話読むと、1個まえのバイナリを保存するのはIDEAのEAPでは基本の認識なんだそうです。
うーん。みんな知らないから爆死してるんだよな‥‥‥
【Android Studio v0.1.1の話】gradleに思いのほかメモリを割り当てるので,New Projectでこんな画面でたら,なんとかして空きメモリを確保しよう。 URL
@masanobuimai Idea上でgradle動いているん?
2013-05-30 11:15:00 via web to @masanobuimai
当たり前ではないのかな?
あと
とかは別だと思うけどな‥‥。
TL上の好意的なメモ>
ぉ、Android Studio をアップデートしたら立ち上がるようになった
2013-05-29 17:48:28 via web
Android StudioでもIDEAと同じで、メニューからTools->Create Command-line Launcherでコマンドラインツールの追加出来ますね。IDEAにあった改行コード問題解決されているのでそのまま使える(0.1.1で確認)。
Mac OS Xの場合、コマンドラインランチャー追加で /usr/local/bin 以下に studioというコマンドが追加されるので、studio <ファイル名>でAndroid Studioで指定のファイル編集を行えるようになります。これも結構便利機能。
IDEAの場合は同様の手順で idea ってコマンドが追加されます。
うーんその機能うれしいの??