2015年11月27日金曜日

build.gradleの依存ライブラリのバージョンが勝手に変更されてしまう

Android Studioでアプリ開発をしています。

アプリのbuild.gradleとライブラリのbuild.gradleでそれぞれdependenciesに

compile 'com.google.android.gms:play-services-maps:8.1.0'

と書いているのですが、気づくとアプリ側だけ

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

と勝手に書き換わっています。

このままではそれぞれに含まれるバージョンが違うせいか実行しようとすると

AGPBI: {"kind":"simple","text":"com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info;","sources":[{}]}

というエラーが表示されてしまいます。

(adsで問題がでているのは、おそらくライブラリ側でanalyticsを依存に書いていて、それがadsに依存しているから)

これは最新版を使えという思し召しなのでしょうか・・・なぜ片方だけ・・・謎です。

古いアプリを移行してきたので当面はバージョンを変えたくないのですが。

2015年11月7日土曜日

[解決]Playストアで「サーバーからの情報の取得中にエラーが発生しました」が出るときの対策

先日、古いAndroidタブレットを初期化したら使い物にならなくなったことで大変困りました。

これが意外なことで解決したのでご報告します。

やったことはズバリ『「Google Play開発者サービス」を強制的に上書きインストール(更新)すること』です。

「Google Play開発者サービス」のアプリ本体(APK)を取得できさえすれば後は簡単です。

手順は以下の通り。


  1. WebブラウザでAPK Downloader(http://apps.evozi.com/apk-downloader/)を開く
  2. 先頭の入力欄を1回クリックする
  3. ↑で別のタブが開いたり別のページへ遷移したら戻る(ただの広告です)
  4. 再び入力欄をクリックして「com.google.android.gms」と入力する
  5. すぐ下の「Generate Download Link」を押す
  6. 「Click here to download com.google.android.gms now」ボタンが表示されたら押してAPKをダウンロードする
  7. なんとかしてAndroid端末へAPKファイルを転送する
  8. Android端末でAPKファイルを開いてインストールする

5まで実行したときの画面はこんな感じです。

7については、私はBluetoothで転送しました。
メールに添付したり、microSDカードなどを使ったりするのも良いと思います。

ページ内の「QR Code」の「View」を押すと別タブでQRコードが開くので、おそらくそこからダウンロードできるかと思います。Android端末にQRコードリーダが付いている場合これが一番簡単かもしれません。

「Google Play開発者サービス」さえ更新してしまえば、Playストアも普通に使えるようになりました。

お困りの方は、是非試してみてください。