Please don’t pin your play-services dependency at a particular version

It causes issues with other libs when a 3rd-party library, like yours, pins its play-services dependencies at a particular version.

eg:

Unknown source file : com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1;
Unknown source file :   at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
Unknown source file :   at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
Unknown source file :   at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
Unknown source file :   at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Unknown source file :   at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
Unknown source file :   at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
Unknown source file :   at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
Unknown source file :   at com.android.dx.command.dexer.Main.run(Main.java:277)
Unknown source file :   at com.android.dx.command.dexer.Main.main(Main.java:245)
Unknown source file :   at com.android.dx.command.Main.main(Main.java:106)

You have

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

You need to change it to:

compile 'com.google.android.gms:play-services-gcm:+'

2 thoughts on “Please don’t pin your play-services dependency at a particular version

  1. In addition, I question the wisdom of including the entire ‘play-services-gcm` just to fetch the gcm identifier. This should be the responsibility of some other module which is doing Push requests. This module has no business dealing with this.

Comments are closed.

Please don’t pin your play-services dependency at a particular version

It causes issues with other libs when a 3rd-party library, like yours, pins its play-services dependencies at a particular version.

eg:

Unknown source file : com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1;
Unknown source file :   at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
Unknown source file :   at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
Unknown source file :   at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
Unknown source file :   at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Unknown source file :   at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
Unknown source file :   at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
Unknown source file :   at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
Unknown source file :   at com.android.dx.command.dexer.Main.run(Main.java:277)
Unknown source file :   at com.android.dx.command.dexer.Main.main(Main.java:245)
Unknown source file :   at com.android.dx.command.Main.main(Main.java:106)

You have

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

You need to change it to:

compile 'com.google.android.gms:play-services-gcm:+'

1 thought on “Please don’t pin your play-services dependency at a particular version

  1. In addition, I question the wisdom of including the entire ‘play-services-gcm` just to fetch the gcm identifier. This should be the responsibility of some other module which is doing Push requests. This module has no business dealing with this.

Comments are closed.