IllegalStateException: тег метаданных в AndroidManifest. xml вашего приложения не имеет правильного значения. - PullRequest
1 голос
/ 28 мая 2020

После обновления инструментов сборки 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, но есть ли какое-нибудь решение, кроме жесткого кодирования?

1 Ответ

0 голосов
/ 28 мая 2020

Измените его вот так и убедитесь, что он находится в вашем теге <Application></Application>

<meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/gms_version" />

Вы также можете указать прямое значение в вашем values.xml файле. Например,

<integer name="gms_version">12451000</integer>

Если вы не хотите жестко его закодировать, вы можете удалить файл .jar, если вы добавили зависимость в build.gradle, тогда вы этого не сделаете необходимо включить в него файл .jar.

Дайте мне знать, если это может вам помочь.

Спасибо и удачного кодирования ..!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...