Устройства Huawei: тег метаданных в AndroidManifest.xml вашего приложения не имеет правильного значения

Я работаю в массовом приложении, которое работает около 4 лет, в последнем выпуске было реализовано несколько новых библиотек, после этой реализации у нас возникли некоторые проблемы при попытке проверить, доступны ли сервисы Google Play, это происходит только на устройствах Huawei с Android 8+. 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 4323000.  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" />

У нас есть правильные значения в манифесте:

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="XXXXXXXXXXXXXXXXXXXXXX" />

Если мы следуем значению google_play_services_version, мы можем найти ожидаемое значение из play-services-basement-16.1.0.aar

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

Это библиотеки, реализованные на Gradle

implementation "com.android.support.constraint:constraint-layout:$constraint"
implementation "com.android.support:appcompat-v7:$support"
implementation "com.android.support:design:$support"
implementation "com.android.support:cardview-v7:$support"
implementation "com.android.support:recyclerview-v7:$support"
implementation "com.android.support:design:$support"
implementation "com.android.support:support-v4:$support"
implementation "com.android.support:mediarouter-v7:$support" //New Lib
implementation "com.android.support:animated-vector-drawable:$support" //New Lib
implementation "com.android.support:design:$support"
implementation "com.android.support:support-vector-drawable:$support"

//Play services
implementation "com.google.android.gms:play-services-maps:$playServices"
implementation "com.google.android.gms:play-services-analytics:$playServices"
implementation "com.google.android.gms:play-services-gcm:$playServices"
implementation "com.google.android.gms:play-services-safetynet:$playServices"
implementation "com.google.android.gms:play-services-wearable:$playServices"

С этой версии

ext {
    //build
    sdkCompileVersion = 27
    sdkMinVersion = 16
    sdkTargetVersion = 27
    sdkBuildToolsVersion = '27.0.3'

    //dependencies
    support = '27.1.0'
    playServices = '16.0.0'
    newRelic = '5.18.0'
    constraint = '1.1.2'
}

У кого-нибудь была идея решить эту проблему, спасибо заранее?

0 ответов

Вы жестко указали значение версии gms где-нибудь в своем приложении? Что-то вроде этого applicationInfo.metaData.putInt("com.google.android.gms.version", 4323000);

Также возможно, что одна из новых библиотек, которые вы добавили, также объявляет старую / другую com.google.android.gms.version.

Если это происходит только на Huawei, возможно, Huawei пытается переопределить какое-то значение.

Чтобы убедиться, что это ваши собственные библиотеки или Huawei, вам нужно будет жестко закодировать его в манифесте, затем проанализировать созданный apk и проверить окончательное значение, которое там объединено. Если это значение соответствует ожиданиям, то, вероятно, дело в Huawei.

Вы также можете попробовать эту ссылку: /questions/47884567/posle-obnovleniya-servisa-google-play-do-versii-13-ya-poluchil-oshibku/47884628#47884628

Если библиотека использует старую / другую версию, она заменит ее вашей.

Если проблема все еще не решена, не могли бы вы предоставить следующие сведения: Поделитесь полной трассировкой стека. Это происходит на каких-либо устройствах Nexus/Pixel? Какие из этих библиотек добавлены недавно?

Другие вопросы по тегам