I found an xml file GoogleDependencyFlurryPlugin.xml
<dependencies>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-base</artifactId><version>8.4+</version></dependency>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-basement</artifactId><version>8.4+</version></dependency>
</dependencies>
and indeed an xml file GoogleDependencyPlayGameServicesPlugin.xml
<dependencies>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-games</artifactId><version>8.4+</version></dependency>
<dependency><groupId>com.google.android.gms</groupId><artifactId>play-services-plus</artifactId><version>8.4+</version></dependency>
</dependencies>
Now, at one point the former file had ONLY
play-services-base > OR < play-services-basement
and that seemed to cause a huge problem. AndroidJavaException: java.lang.NoSuchMethodError: once running on a device.
Android experts, is it the case that if you have "base" you must have "basement" ... or perhaps vice versa?
Indeed, WRT play-services-games or play-services-plus, perhaps one/both of those depend in some way (or contradict?) base/basement?
The library
play-services-basementis a dependency ofplay-services-base. It was introduced in Google Play Service version 8.1.0 to help to reduce the size of some other libraries likeplay-services-adsandplay-services-analytics.When you add
play-services-baseyou automatically add alsoplay-services-basementso it's not necessary to add the explicit dependency.You can check the dependencies of every single library in your local Google repository.
For example for the library
play-services-gamesopen the file pom file that is located here:this is the content of the file:
As you can see
play-services-gamesdepends onplay-services-baseandplay-services-drive