После обновления инструментов сборки gradle до версии 3.6.3 я получаю ошибку во время выполнения sh при попытке получить рекламный идентификатор, которого раньше не было.
AndroidManifest. xml
<meta-data
tools:replace="android:value"
android:name="com.google.android.gms.version"
android:value="@integer/gms_version" />
значения. xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="gms_version">@integer/google_play_services_version</integer>
</resources>
build.gradle
classpath 'com.android.tools.build:gradle:3.6.3'
classpath 'com.google.gms:google-services:4.3.3'
Logcat
Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 12451000 but found 6587000. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@17.2.1:19)
at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@17.2.1:5)
at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source:17)
at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source:17)
at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source:47)
Если я наведу курсор на 'google_play_services_version 'в values. xml, показано несколько реализаций. Одна из них - версия «12451000», исходящая от gms: play-services-basement-17.2.1, а другая - внутренняя библиотека, включенная в виде файла aar. Он содержит версию службы Google Play "6587000". Думаю, именно здесь и возникает конфликт.
Ошибка исправлена, если я жестко закодирую значение как «12451000» в values. xml, но есть ли какое-нибудь решение, кроме жесткого кодирования?