GDKを利用してGlassアプリをビルドするまで

# Google Glass Enterprise Edition 2 を想定して、GDKを利用してGlassアプリをビルドする方法

今更ながら、Google Glass向けのアプリケーションをビルドするところまで検証してみました。
ビルドを通すだけが目標なので、Runまでは動作確認していません。
~~また、記憶を頼りに書いているので漏れている部分がるかもしれません。~~

## 環境
* MacOS Mojave
* Android Studio

## 全体の流れ
1. Android Studioのインストール
2. GDKのインストール
3. NDKのインストール
4. toolchains配下の構成変更
5. スケルトンプロジェクトの作成
5. gradle-wrapper.propertiesの編集
6. build.gradleの編集
7. Edit Configrations...からModule、Activityの設定
8. Restart

## 詳細
### Android Studioのインストール

このへん
https://akira-watson.com/android/adt-mac.html
を参考に、
https://developer.android.com/studio
から最新のAndroid Studioをダウンロードし、ローカルにインストールしました。

### GDKのインストール
GDKはSDK Managerからインストールします。
Glass Development Kit PreviewはAndroid4.4の中にあります。（ShowPackage Detailsにチェックをつけてください。）
<img width="743" alt="スクリーンショット 2019-10-02 17.46.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491627/61c6096a-d600-894f-fbd0-22ad97e50c91.png">

### NDKのインストール
`File > Project Structure...`からインストールします。
参考）https://qiita.com/atsuya046/items/80989f328286b4c1a1b5

インストール後はSDK Locationが以下のようになっていればOK。（userのところは自身のユーザー名）
<img width="1062" alt="スクリーンショット 2019-10-02 17.50.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491627/7a4a9d8c-0e33-fab2-6985-06655a0d98a8.png">

### toolchains配下の構成変更
このままだとビルド時にフォルダ参照が足りずエラーが出ますので、以下の操作を実施してください。

* `/Users/user/Library/Android/sdk/ndk-bundle/toolchains`にアクセス
* `aarch64-linux-android-4.9`を複製し`mips64el-linux-android`にリネーム
* `arm-linux-androideabi-4.9`を複製し`mipsel-linux-android`にリネーム
以下のようになっていればOK。
<img width="553" alt="スクリーンショット 2019-10-02 17.56.43.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491627/6702a5b8-4ab4-567d-338b-69d1409d330e.png">

### スケルトンプロジェクトの作成
GDKのインストールに成功していれば`Start a new Android Studio project`にGlassタブが現れているはずです。
今回は`Simple Live Card`を選択します。
<img width="666" alt="スクリーンショット 2019-10-02 17.59.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491627/66016e76-2322-3169-badf-b553b19843ed.png">

### gradle-wrapper.propertiesの編集
GradleがGDKを認識するために、ダウングレードが必要です。
`gradle-wrapper.properties`を以下のように記載してください。

```properties:gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
```

### build.gradleの編集
こちらも同様にGradleのダウングレードになります。
`build.gradle`は2つあると思いますので、まずはProjectのものから。
* `google()`のコメントアウト
* `classpath`の修正

```gradle:build.gradle
buildscript {
    repositories {
        // google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        // google()
        jcenter()
        
    }
}
```

次にappのもの。
compileSdkVersionにGDKを指定し、buildToolsVersionを29.0.2とします。

```gradle:build.gradle
compileSdkVersion "Google Inc.:Glass Development Kit Preview:19"
buildToolsVersion "29.0.2"
```

Gradleのダウングレードをすることで、`implementation`が使えなくなりますので`compile`に変更します。

```gradle:build.gradle
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
```

### Edit Configrations...からModule、Activityの設定

Module、Activityを指定します。
画面のようになっているはずです。
<img width="1183" alt="スクリーンショット 2019-10-02 18.13.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491627/21847884-9472-5792-a973-ac439036b87d.png">

### Restart

最後に`File > Invalid Caches / Restart...`でAndroid Studioを再起動すれば、ビルドが通るはずです。
<img width="314" alt="スクリーンショット 2019-10-02 18.16.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/491627/b888d8ce-de98-1c06-44f1-b6468f5ce593.png">

## 最後に

Android Studioを触るのは初めてでしたが、Gradleの仕組みやビルド方法など勉強になりました。
基本的にやったことはエラーメッセージに対して対処療法を繰り返すだけです。
GDKが新しくなれば、上記の操作は不要になると思いますが、現状詰まるポイントがたくさんありますので、記事として作成しました。