もう何年もメンテナンスしていないソースコードでは、大抵はライブラリが昔のバージョンのまま放置されています。古いうえにライブラリに新しいクラスがつっこまれたりしているので新しいAndroidAPIで動かしてみても勿論死にます。自分の担当したアプリも例外でなく、このcompile ‘com.google.android.gms:play-services:8.0.0’というライブラリに手を焼いておりました。
GoogleAPIでも書かれていますが、こいつはもうそのままでは使えません。GooglePlayServiceは大量のクラスを持っているので新規で追加されたライブラリの中で一個でも同じクラスがあった場合は競り合いとみなされ速攻でクラッシュします。厳密には、一つの機能しかないアプリならまあ古いバージョンでも使えますが、それでは実用性がないのでやっぱり使うのにはおすすめしません。
これからはAPI別に機能が分けられたbuild.Gradleを記述することで使えるようになるので、そちらの方法で使いましょう。と公式先生がおっしゃっていたのでそちらに従ってライブラリを入れましょうということです。
例えば、新しいバージョンでもGooglePlayServiceのLocationServices機能が使いたい!と思ったときは既存のGooglePlayServiceを消してこんな感じにgradleに書いていきます。
これを削除↓
</pre> compile 'com.google.android.gms:play-services:8.4.0' <pre>
でこちらを代わりに導入します。↓
</pre> <pre>implementation 'com.google.android.gms:play-services-location:16.0.0'</pre> <pre>
こんな感じで大元のcompile ‘com.google.android.gms:play-services:8.4.0’を削除してアプリの機能にあったライブラリをいれていきます。公式を見ながらでも全然できますが、アプリで使われているライブラリが何なのか先見しておいて調べておくと入れ替えがもっと楽になるのでおすすめです。