QA@IT

【android】【kotlin】Google Place APIで発生するエラーについて

6725 PV

android開発が初めてのため投稿させて頂きました。
情報が不足しているかもしれませんがよろしくお願いします。

前提・実現したいこと

  • kotlinで作成したandroidアプリでGoogle Place APIを使って、検索を行いたい。。。

発生している問題・エラーメッセージ

シュミレータ(Genymotion)、実機(android4.3端末)それぞれに違ったエラーが出力される

シュミレータ(Genymotion)

W/GooglePlayServicesUtil: Google Play Store is missing.

実機(android4.3端末)

W/GooglePlayServicesUtil: Google Play services out of date.  Requires 9683000 but found 9452034

該当のソースコード

  • Google Api Clientのstopは省略
  • ソースの公開情報の都合で必要なコードのみ記載しています。

kotlin

var googleApiClient: GoogleApiClient? = null
        googleApiClient = GoogleApiClient.Builder(this.context)
                .addApi(Places.GEO_DATA_API)
                .addApi(Places.PLACE_DETECTION_API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build()
            googleApiClient?.connect()
        var result = Places.GeoDataApi.getAutocompletePredictions(googleApiClient,
                searchText.getText().toString(),
                LatLngBounds(LatLng(35.485901 , 138.779526),
                LatLng(35.486801 , 138.78064)),filter.build())

        result.setResultCallback { likelyPlaces ->
            var places: ArrayList<LikelyPlace> = ArrayList<LikelyPlace>()
            for(placeLikelihood in likelyPlaces) {
                var place: LikelyPlace = LikelyPlace()
                place.name = placeLikelihood.getPrimaryText(null).toString()
                place.address = placeLikelihood.getSecondaryText(null).toString()
                Log.d("name", place.name)
                Log.d("address", place.address)

            }
            likelyPlaces.release()
        }

試したこと

  • 実機検証
  • Google API Clientのconnect確認

補足情報(言語/FW/ツール等のバージョンなど)

  • kotlinで作成したandroidアプリでGoogle Place APIを使って、検索を行いたい(text editはXMLに記載済)

  • gradleに「compile "com.google.android.gms:play-services-gcm:9.6.0"」は記載済

同様の事象に遭われた方ぜひ、知見をお借りしたいです。
よろしくお願いいたします。

回答

Genymotionはそもそもgoogle apps入ってなかったと思いますので、
なんとかして入れるしかないと思います。
Webに情報はあるとは思いますがそもそも公式のエミュレーターではないですしここでは触れません。

実機の方は、実機に入っているGoogle Play開発者サービスのバージョンが古いために起きているようです。
実機エラーのissueとしては https://code.google.com/p/android/issues/detail?id=57880 に上がっています(英語)。

あまり詳しくはないですが、アプリケーションが compile "com.google.android.gms:play-services-gcm:9.4.0"compile "com.google.android.gms:play-services-gcm:9.2.0"でも動作可能であれば、指定バージョンを変えることで解決するのではないかと思います。

それが無理なら、Google Play開発者サービスをアップデートすることになりそうですが、最近のGoogle Playでの評価が低いのと内容を見るにお勧めするのを躊躇ってしまいますね。

Google Play開発者サービスについては以下の記事が参考になるかと思います。

http://www.atmarkit.co.jp/ait/articles/1501/08/news127.html

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。