読者です 読者をやめる 読者になる 読者になる

iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

Android Studioを使ってみてハマったこと

Androidの開発環境は、ずっとEclipse + ADTを利用していましたがAndroid Studioが良くなっているぽいので使ってみよう!と思いたってインストールしてみたらいきなり2つばかしハマってしまったので記事書いておこうかなと。

Android Studioインストール

GoogleのDeveloperサイトからDLします。

スクリーンショット 2014-07-29 12.07.54

[ogp]https://developer.android.com/sdk/installing/studio.html[/ogp]

バージョンは、Beta v0.8.0 でした。dmgファイルがダウンロードできるのでアプリケーションフォルダにコピーします。

スクリーンショット 2014-07-29 12.11.06

さて、起動するのですが option+click で"開く"としても全く反応がありませんでした。

何が起きているのかさっぱりわからないので、ターミナルから以下を直接叩いてみます。

/Applications/Android\ Studio.app/Contents/MacOS/studio

なんかエラーがでてました。

[JavaAppLauncher Error] CFBundleCopyResourceURL() failed loading MRJApp.properties file

[JavaAppLauncher Error] CFBundleCopyResourceURL() failed while getting Resource/Java directory

[LaunchRunner Error] No main class specified

[JavaAppLauncher Error] CallStaticVoidMethod() threw an exception

Exception in thread "main" java.lang.NullPointerException

at apple.launcher.LaunchRunner.run(LaunchRunner.java:113)

at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)

at apple.launcher.JavaApplicationLauncher.main(JavaApplicationLauncher.java:61)

私の環境では、java7をインストールしていたのですがAndroid Studioを動かすのにjava6も必要だという記事を見かけたのでインストールしてみます。

brew caskを使っているのでBrewfileに以下を記載。

cask install --appdir=/Applications java6

インストール実行します

brew bundle

これでjava6のインストールができたので改めてAndroid Studioを起動してみます。

できました!

実機にサンプルアプリをインストールする

次に出くわしたのが、adbで接続したときにunauthorizedとなってしまってpushとかinstallができませんでした。

Android SDK Tools, Android SDK Platform-toolsなどをアップデートして、端末側でUSB debuggingのチェックON/OFFしてたら解消されました。

根本的な原因はわからず。。。

実機にサンプルアプリをインストールする ~ その2

デバイスがちゃんと認識されたし、これでいけるだろうと思ったらまた違うエラーが発生。

Failure [INSTALL_FAILED_OLDER_SDK]

なんだかSDKのバージョンと実機のAndroidバージョンで不整合があるのかなと思い確認していきます。

端末は、Galaxy NexusでAndroid version 4.2.2

ソースの方は、、、AndroidManifest.xmlに記載がない。。

ちょっと調べたらどうやら、build.gradleというファイルに書いてあるらしい。

デフォルトが以下のような記述だったのですが、

android {

compileSdkVersion 'android-L'

buildToolsVersion "20.0.0"

defaultConfig {

applicationId "com.example.yuichiichimura.myapplication"

minSdkVersion 15

targetSdkVersion 'L'

versionCode 1

versionName "1.0"

}

buildTypes {

release {

runProguard false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

compileSdkVersion、targetSdkVersionの記述を20にするといいらしい記事を発見してためしてみます。

[ogp]http://stackoverflow.com/questions/24465289/android-studio-failure-install-failed-older-sdk[/ogp]

できました。。

エミュレータは起動したがランチャーが落ちる

今度はエミュレータも動かしてみようと思い、AVD Managerで作成します。

スクリーンショット 2014-07-29 12.52.56

RAMですが、1024だと私の環境ではOutOfMemoryErrorが発生して、ランチャーが落ちてしまってまともに動きませんでした。

512でうまく動いているのでこの設定で様子見ます。

エミュレータが重い

この記事のとおりやったら起動が数秒になりました。すばらしい!

[ogp]http://saku-java.be-ourselves.jp/2014/05/18/intel-x86-android-emulator-setting/[/ogp]

ひとまず以上ハマった事レポートでした。