#事象
あるプロジェクトにて、社内のテスト端末を使用している際に、下記エラーが発生しているを発見。
Failed to load googlecertificates. qw:No acceptable module found. Local version is 0 and
#対応
自身の端末ではエラーにはなっておらず、調査してみると、
どうやらテスト端末側にGooglePlay開発者サービスがインストールされていないため、
com.google.android.gms:play-services
は使用出来ないですよ、ってことらしい。
しかしコンソール上でエラーが吐き出されているだけで、異常終了にはならないため気づきづらい。
そこで、起動時にチェックかけられたらいいんじゃない?ってなり、
さらに調べてみると、以下のようにチェックが可能であることがわかった。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(null)
setContentView(R.layout.activity_main)
// GooglePlay開発者サービスがインストールされているかチェックする
val api = GoogleApiAvailability.getInstance()
val code = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this)
if (code == ConnectionResult.SUCCESS) {
// インスール済みなので通常処理を実行
} else {
// インストールされていないのでダイアログを表示
api.getErrorDialog(this, code, 0).show()
}
}
インストールされていない場合は、公式に用意されている以下のダイアログを呼べばいいと思う。
api.getErrorDialog(this, code, 0).show()
#備考
今回はたまたま見つけたので対応しましたが、
基本的にはGooglePlay開発者サービスはインストールされているはずなので、
おまじない程度に起動時に書いておくのもありかなって思いました。(問い合わせとかくると面倒だし…)
Qiitaに同様の記事がなかったので自分へのメモとして記事にしてみました。
他にも同様の件で困っている方の参考になれば幸いです。