After Google Play Service update to version 13 I got an error
После обновления сервиса Google Play до версии 13 я получил сообщение об ошибке
Как я могу устранить эту ошибку?
Вызвано: java.lang.illegalargumentexception 11-01 11:08:12.845: E / AndroidRuntime(28885): Вызвано: java.lang.Исключение IllegalStateException: тег метаданных в вашем приложении AndroidManifest.xml не имеет правильного значения. Ожидалось 4030500, но найдено 0. Внутри элемента должно быть следующее объявление:
publicvoidloginGooglePlus() { aHelper.setup(this, GameHelper.CLIENT_APPSTATE | GameHelper.CLIENT_GAMES); mHelper = aHelper.getAppStateClient(); //crash is here mHelper.connect(); }
Полный журнал ошибок:
11-0111:38:13.507: E/AndroidRuntime(31297): FATAL EXCEPTION: main 11-0111:38:13.507: E/AndroidRuntime(31297): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.application.android.aja/com.company.application.android.aja.BeetleBattleAndroidActivity}: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. 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" /> 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2077) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.access$600(ActivityThread.java:134) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.os.Handler.dispatchMessage(Handler.java:99) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.os.Looper.loop(Looper.java:154) 11-01 11:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.main(ActivityThread.java:4624) 11-01 11:38:13.507: E/AndroidRuntime(31297): at java.lang.reflect.Method.invokeNative(Native Method) 11-01 11:38:13.507: E/AndroidRuntime(31297): at java.lang.reflect.Method.invoke(Method.java:511) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:965) 11-01 11:38:13.507: E/AndroidRuntime(31297): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:732) 11-01 11:38:13.507: E/AndroidRuntime(31297): at dalvik.system.NativeStart.main(Native Method) 11-01 11:38:13.507: E/AndroidRuntime(31297): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. 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" /> 11-0111:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source) 11-0111:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source) 11-0111:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.internal.de.connect(Unknown Source) 11-0111:38:13.507: E/AndroidRuntime(31297): at com.google.android.gms.appstate.AppStateClient.connect(Unknown Source) 11-0111:38:13.507: E/AndroidRuntime(31297): at com.company.application.android.aja.BeetleBattleAndroidActivity.loginGooglePlus(BeetleBattleAndroidActivity.java:153) 11-0111:38:13.507: E/AndroidRuntime(31297): at com.company.application.android.aja.BeetleBattleAndroidActivity.onCreate(BeetleBattleAndroidActivity.java:143) 11-0111:38:13.507: E/AndroidRuntime(31297): at android.app.Activity.performCreate(Activity.java:4509) 11-0111:38:13.507: E/AndroidRuntime(31297): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 11-0111:38:13.507: E/AndroidRuntime(31297): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041) 11-0111:38:13.507: E/AndroidRuntime(31297): ... 11 more
Вывод: для последних сервисов Google play требуется название версии, которое должно быть указано с помощью <meta-data .. /> inside AndroidManifest.xml
Примечание:Я бы настоятельно рекомендовал использовать 1-й способ
Ответ 3
С тех пор, как вы задали этот вопрос, кое-что изменилось. Если вы используете службы Google Play 7.0 или новее, Gradle автоматически объединит манифесты и включит для вас необходимые метаданные.
запись в вашем файле AndroidManifest.xml для вас - нет необходимости добавлять ее вручную ! Идеальный пример простого слияния манифестов, где библиотеки могут добавлять требуемые метаданные, приемники, разрешения и все остальное, что им нужно - одной вещью меньше, о которой можно забыть!
Примечание: это не относится к полноценным AAR play-services или play-services-all-wear AARs - это встроено только в детализированные AAR.
Ответ 4
Я создал файл "version.xml" в папке res / values включенной копии сервисов Google и вставил код: