2015年12月22日火曜日

バージョンとか

手持ちの環境のバージョンのメモです。


Android Studio : 2.0 Preview 4

Gradle version : 2.8

classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
classpath 'com.google.gms:google-services:2.0.0-alpha3'


apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

compile 'com.google.android.gms:play-services:8.3.0'


play-servicesの最新バージョンは8.4.0だが、2015/12/21時点でgradleのプラグインが無い(無駄にバージョンチェックが入っている)ために8.3以上にすることができない。

gradleプラグインのどちらかでアプリのチェックが厳しくなっている。

stringの複数言語で定義していないとエラーが出てreleaseバージョンのビルドが失敗するようになっている。
非推奨となっているメソッドなどの警告がエラー扱いになっていてbuld.gradleに
    // 非推奨メソッドの警告無視
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
を含めてもビルドできず、ソース内にこれを無視する
@SuppressWarnings("deprecation")
を適時入れていかないとビルドができなくなってしまった。

現状クリーン後やデバッグビルドやリリースビルド後にソース内の構文チェックなどの表示がおかしくなっている。原因がAndroid Studio 2.0 Preview4なのかgradleのプラグインのなのかは不明。

AnalyticsやAdMobがjson対応やgradleプラグインのおかげでAndroidManifestのパーミッションや定義用のxmlを用意しなくても自動生成されるようになった。(でもandroid.permission.INTERNETやandroid.permission.ACCESS_NETWORK_STATEは記述するようにgoogleのサンプルは変わっていない)
ただ、仕組みはあまり変わっていないのでソース内の処理はほとんど変わらないのと、必要なパーミッションは変わっていなく、android.permission.WAKE_LOCKが自動で追加されるようになっていた。

サンプルのコードが地味に変更されていてより不安定な動作でもそれなりに動くようになっている。
gradleプラグインとplay-serviceのバージョンの違いか、play-serviceのバグかは解らないが、今月に入ってからどうも変なエラーが発生している。ハイスペック端末(サムスンのオクタコア系)とロースペック端末(Android2.xとか)で発生している傾向が強く、ミドルレンジやリファレンス端末ではエラーが発生していない。ちょいちょいエミュレーション用のバイナリが更新されているので単純にplay-serviceの不具合の可能性が強い。

ガイドは日本語と英語で表記されているバージョンが異なっています。
Analyticsの日本語ではplay-servicesが8.1.0でgradleプラグインが1.5.0-beta2
英語では8.3.0の1.5.0-beta2でした。
さらに混乱するのが各サービスを有効にするための手続きと設定ファイルダウンロードを行うためのページから遷移するドキュメンテーションのリンクが違ったところとなっていてそちら側ではまた異なるバージョンになっています。
日本語 8.1.0 1.4.0-beta3
英語 8.4.0 1.5.0-beta2
どのページの情報が正しいのか判断がつかないため、どうしてもトライアンドエラーに頼っています。
全体的に見るとplay-servicesは8.4.0でgradleプラグインは1.5.0-beta2でよさそうに思えます。
と思ったら、gradleのプラグイン1.5.0-beta2 の apply plugin: 'com.google.gms.google-services' でバージョンチェックが行われているようで、これで8.3.0のバージョンチェックが行われていた。
Error:Execution failed for task ':app_livewallpaper:processDebugGoogleServices'.
> Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 8.3.0.

1.5.0は正式版がリリースされているようなのでそれを利用してみる。
結果…
Error:(3) Error: "ga_trackingId" is not translated in "ja" (Japanese) [MissingTranslation]
Error:(6) Error: "test_banner_ad_unit_id" is not translated in "ja" (Japanese) [MissingTranslation]
Error:(7) Error: "test_interstitial_ad_unit_id" is not translated in "ja" (Japanese) [MissingTranslation]
と言うtranslatable="false"が無いためのエラーが…。

0 件のコメント:

コメントを投稿