Android開発環境

IDEの選択肢としてはeclipseとAndroid Studioがメジャーなところだと思われます。

今回はAndroid Studioで行きます。

てことで

OSX(Yosemite) + PhoneGap + Android Studioでエミュレーターで実行できるまでの記録です。

JDK

JDK7をOracleからダウンロードインストール。

(Android StudioがJDK7を名指しなので、JDK8は使いませんでした(Android Studioに組み込んどいてほしいわ))

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#JDK
~$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
#JRE
~$ /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

Android Studio

Android Studioをダウンロード、インストール。

Android Studioのバージョンは1.0.1でした。

Yosemite (Mac OSX 10.10) Issuesがあるらしいので、STUDIO_JDKを設定。

~/.bash_profileに

1
export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk

を追加して

1
2
~$ source ~/.bash_profile
~$ open /Applications/Android\ Studio.app

インストーラが走るので、素直に画面の指示に従います。

再起動してすぐAndroid Studioを立ち上げようとするとJDKが見つからない的なことを言われるので、

1
2
~$ sudo vim /etc/launchd.conf
setenv STUDIO_JDK /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk

としました。。。が動きません。

Yosemiteではlaunchd効かないらしいので、とりあえず~/.bash_profileに

1
launchctl setenv STUDIO_JDK $STUDIO_JDK

を追加しときます。

android用 platform追加(phonegap build)

1
~/src/pgapp$ phonegap build android

とすると

Error: ANDROID_HOME is not set and “android” command not in your PATH. You must fulfill at least one of these conditions.

とか怒られます。

STUDIO_JDKと同じようにANDROID_HOMEも追加。

再度ビルドしようとすると、今度は

Error: Please install Android target “android-19”.

Hint: Run “android” from your command-line to open the SDK manager.

と怒られます。

Android Studioを起動してConfigure→SDK Manager→Android 4.4.2(API 19) をインストール。

やっとこさ、ビルド成功。

1
2
3
4
5
~/src/pgapp$ phonegap build android
[phonegap] executing 'cordova platform add android'...
[phonegap] completed 'cordova platform add android'
[phonegap] executing 'cordova build android'...
[phonegap] completed 'cordova build android'

環境変数

最終的にphonegap buildまでに設定が必要な環境変数は2つ。合わせてこんな感じ。

1
2
3
4
5
export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk
export ANDROID_HOME=$HOME/Library/Android/sdk/

launchctl setenv STUDIO_JDK $STUDIO_JDK
launchctl setenv ANDROID_HOME $ANDROID_HOME

Android Studioで実行

Android Studioで”Import Non-Android Studio project”

phonegapで作成したフォルダを選択。 /Users/cozy/src/pgapp とか。

platform/androidは無視していいみたいです。

ウィーザードが始まりますのでnext, next…

途中SDKのバージョン選択画面が出るので”Android API 19 Platform”を選択。

RunメニューにRun’Android’からRun!

一応動いてます。

Android Studioはバージョンに敏感なようです。

Androidはいろいろフラメン起こってって仕事でやってる人は大変そうですな。

追記:

勘でやらずに先に説明書を読みましょう

以下、間違えた記録

Android Studioで実行

Android Studioで”Import Non-Android Studio project”

/platforms/android/ を選択するとなんかいい感じに読み込んでくれました。

Build->Make Projectをすると

```plain Error:(3) A problem occurred evaluating root project 'android'. > Failed to apply plugin [id 'android'] > Gradle version 1.10 is required. Current version is 2.2.1. If using the gradle wrapper, try editing the distributionUrl in /Users/????/src/????/platforms/android/gradle/wrapper/gradle-wrapper.properties to gradle-1.10-all.zip ```

となります。
platforms/android/build.gradleの

```plain dependencies { classpath 'com.android.tools.build:gradle:0.10.+' } ```

```plain dependencies { classpath 'com.android.tools.build:gradle:1.0.+' } ```

とします。

次に出たエラーがこれ(もうやめたい…)

```plain Error:failed to find Build Tools revision 19.0.0 Install Build Tools 19.0.0 and sync project ```


Tools->Android->SDK Managerから”Android SDK Build Tools 19″をインストールします。

はい次のエラー

```plain Task '' not found in root project 'android'. ```

ちょっと分けが分からなくなってきたので、Android Studioを再起動してみると…
はい、また別のエラー

```plain Error:The SDK Build Tools revision (19.0.0) is too low for project 'android'. Minimum required is 19.1.0 ```

さっき19.0.0って言ったじゃん。
怒りを抑えつつ、
Tools->Android->SDK Managerから”Android SDK Build Tools 19.1″をインストールします。

インストールしただけだとダメなようで、
platforms/android/build.gradle と platforms/android/CordovaLib/build.gradle の
buildToolsVersion “19.0.0”

buildToolsVersion “19.1”
にします。

はい次

```plain Error:(13, 5) uses-sdk:minSdkVersion 7 cannot be smaller than version 10 declared in library /platforms/android/build/intermediates/exploded-aar/android/CordovaLib/unspecified/AndroidManifest.xml ```

なにこの懐かしのDLL hell みたいな泥沼。
AndroidManifest.xmlのsdk:minSdkVersionを10にします。

一応ビルド成功するのですが、なぜかmavenのアップデートが走ります。

Updating[central] http://repo1.maven.org/maven2

最終的にphonegap build androidから変更した内容は、

```plain $ git --no-pager diff platforms/android/AndroidManifest.xml platforms/android/build.gradle platforms/android/CordovaLib/build.gradle diff --git a/platforms/android/AndroidManifest.xml b/platforms/android/AndroidManifest.xml index b2d2adc..2151e33 100644 --- a/platforms/android/AndroidManifest.xml +++ b/platforms/android/AndroidManifest.xml @@ -10,5 +10,5 @@ - + diff --git a/platforms/android/CordovaLib/build.gradle b/platforms/android/CordovaLib/build.gradle index 47341b3..e1db448 100644 --- a/platforms/android/CordovaLib/build.gradle +++ b/platforms/android/CordovaLib/build.gradle @@ -25,7 +25,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.10.+' + classpath 'com.android.tools.build:gradle:1.0.+' } } @@ -33,7 +33,7 @@ apply plugin: 'android-library' android { compileSdkVersion 19 - buildToolsVersion "19.0.0" + buildToolsVersion "19.1" compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 diff --git a/platforms/android/build.gradle b/platforms/android/build.gradle index 9d1d45a..ea38dde 100644 --- a/platforms/android/build.gradle +++ b/platforms/android/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.10.+' + classpath 'com.android.tools.build:gradle:1.0.+' } } @@ -39,7 +39,7 @@ android { } compileSdkVersion 19 - buildToolsVersion "19.0.0" + buildToolsVersion "19.1" if (multiarch || System.env.BUILD_MULTIPLE_APKS) { productFlavors { ```