0.4.2 Android Studio
精華町の某所で作業に借り出されている最中なのですが、微妙に待ち時間があったりするので Studioさんを更新してみました。
0.4.1のリリースの後に、緊急updateで0.4.2になっていましたので、0.4.0からの変更点となります。
本家のリリースノートは以下
Intellij 13.0.2 release build, 133.471
Intellijの最新のにしたよ。0.4.0のStudioさんに関係するのは以下の8つ。
- IntelliJ IDEA 13 133.471 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.370 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.330 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.286 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.193 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.162 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.124 Release Notes - IntelliJ IDEA - Confluence
- IntelliJ IDEA 13 133.79 Release Notes - IntelliJ IDEA - Confluence
Gradle IDE integration
- コマンドラインのGradleに渡すパラメータを設定するオプションができたよ(Compiler > Gradle)。 --stacktraceみたいなコマンドラインパラメータを設定しておけるよ。
- Project Structureダイアログは、build.gradleをもっと賢く編集できるようになったよ。たとえば、コメントやコードブロックも保持するようになってるよ。
- 新規プロジェクト作成時に、個々のモジュールのbuild.gradleではなく、トップレベルのbuild.gradeでプラグインとリポジトリが定義されるようにしたよ。
- Gradle 1.10がリリースされているんだけど、AndrodのGradle プラグイン0.7.3(今回のStudioで使用)は Gradle 1.10ではちゃんと動かなくて、エラーメッセージもとても混乱させるものになってるよ。Gradle 1.10でちゃんと動くように、Android Gradle プラグインを修正している最中だよ。
- スマートなインポート。プロジェクトがgradle wrapperを含んでいたり、Gradleがインストールされている場所をStudioが知っている場合には、詳細な情報を尋ねずにプロジェクトが直接インポートされるよ。
- エラー処理や通知の同期に関してたくさんの修正をしたよ。特に同期に失敗した時なんかは、多くの機能が正しく動かなくなるので、もっとよいフィードバックをするように、問題の場所に対してより多くの診断と提案が行われるよ。
Eclipse project import
- Instrumentation testのインポートをサポートしたよ。ADTのプロジェクトをインポートするとき、そのプロジェクトの同列や子ディレクトリで Instrumentation用のADTプロジェクトを発見したら、そのソース群をGradleのテストソースセットにマージするよ。
- NDKプロジェクトのインポートをサポートしたよ。インポートするプロジェクトがNDKのソースを含んでいたら、プロジェクトの jni セットにインポートされるよ。モジュール名はmakefileから推測してGradleファイルに保存して、ndk.dirプロパティはlocal.propertiesファイルで定義されるよ。
- インポートの診断に、必須だけど見つからないMavenリポジトリをSDKがインストールする際の警告や、古いツール類の使用等、いろいろ追加したよ。
- インポートでは、Eclipseのリンクされたリソースやパス変数なんかを利用して、もっと複雑なdependenciesを処理するようになったよ。eclipseのワークスペースを指定した時(またはインポートが自動的にワークスペース内のプロジェクトを検出した時)に、パスを解決するのにワークスペースメタデータを使わせたり、インポートウィザードの一部としてマッピングを手動で指定したりできるよ。
DDMS
- 新しいHeap Dump アクション。メモリプロファイラを使って、指定したプロセスのヒープをダンプし、HPROFファイルとして保存できるようになったよ。
Lint
- manifestファイル内の無視されて誤解の原因となるような属性を警告するよ。
- Gradleプロジェクトで使われる時のいくつかのチェックを修正したよ
Layout Rendering
Bug fixes
たくさんのバグを修正したよ。一部だけど、以下のissueとか。
63534, 63624, 12222499, 63623, 63881, 63622, 58302, 63596, 63926, 64358, 63928, 64014, 63997
SDK Managerで Support Libraryもアップデートして、とりあえずStudioさんのアップデートはうまくいったようです。
top levelの build.gradleでちゃんとリポジトリ設定して、モジュールのdependenciesでも設定しているのに、GooglePlayServicesがうまく組み込まれないという現象と格闘中なので、成功しているとは言えませんけど(^^;
追記
Gradle Import が おかしいような
build.gradleのdependenciesを編集した後に、Gradle Import(今回もいろいろ弄られた部分のようですが…)が走るのですが、これがなんか変な事になってます。
例えば、GooglePlayServicesのライブラリを使うならモジュールのbuild.gradleのdependenciesに
compile 'com.google.android.gms:play-services:4.+'
てのを追加しますが、その際に
ComGoogleAndroidGmsPlayServices4030.aar
だけじゃなく、
Gradle: ComGoogleAndroidGmsPlayServices4030.aar
なんてものが認識されちゃうっぽいんです。そしてIDEA側は Gradle:〜と書かれたライブラリを必要とするらしくて ビルドエラーだよって怒り始める始末。
対処方法としては、ProjectStructureを開いてライブラリがうんたらかんたらって警告がでたらそれをクリックして、
こんな画面で ライブラリを右クリックして、 "Add to Module"を選択し、アプリのモジュールに追加してやることでなんとかなります。
もっと簡単なのは、アプリモジュールのimlファイルを開いて、
<orderEntry type="library" exported="" name="support-v4-19.0.1" level="project" />
<orderEntry type="library" exported="" name="ComAndroidSupportAppcompatV71901.aar" level="project" />
<orderEntry type="library" exported="" name="ComGoogleAndroidGmsPlayServices4030.aar" level="project" />
<orderEntry type="library" name="Gradle: support-v4-19.0.1" level="project" />
<orderEntry type="library" name="Gradle: ComAndroidSupportAppcompatV71901.aar" level="project" />
<orderEntry type="library" name="Gradle: ComGoogleAndroidGmsPlayServices4030.aar" level="project" />
こんな風に libraryの行をコピペしてnameにGradle: を追加してやることでしょうか。ただ、Gradle Importが走るたび(Studioさんを再起動した時も含みます)にリフレッシュされるのでとても面倒です。
カナリア希望の人以外はしばらく様子見した方が良いかもしれません。