Устройства 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? Какие из этих библиотек добавлены недавно?