Вчера по API 19 вышел, поэтому я обновил СДК и другие (в том числе Google Play услуг) сейчас этот метод:
private boolean isGooglePlayInstalled(){
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(status == ConnectionResult.SUCCESS){
return true;
}else{
((Dialog)GooglePlayServicesUtil.getErrorDialog(status, this,10)).show();
}
return false;
}
Бросает на линии в <предварительно>внутреннее состояние = GooglePlayServicesUtil.isGooglePlayServicesAvailable(этого);</пре>
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" />
Как это исправить? Я didn't есть элемент <предварительно>"У ком.Гугл.андроид.ГМС.версия" в</пре> в манифесте прежде чем и он работал.
Это мой манифест:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sabatsoft.driveit"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.sabatsoft.driveit.activity.Start"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- other activities -->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIza*********************************1MZI" />
</application>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
Этот работал для меня:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Место это в конце своего манифеста, после карту ключ API мета-данных тегов. После проверки наличия GPlayServices в вашем методе onCreate, таких как:
// Check status of Google Play Services
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
// Check Google Play Service Available
try {
if (status != ConnectionResult.SUCCESS) {
GooglePlayServicesUtil.getErrorDialog(status, this, RQS_GooglePlayServices).show();
}
} catch (Exception e) {
Log.e("Error: GooglePlayServiceUtil: ", "" + e);
}
...то после нажатия кнопки в диалоговом окне обновить GPlayServices, вы будете привлечены к GPlayStore. Как правило, удалить из меню GPlayStore, то вариант обновления будет недоступен. Он должен работать после этого.
В "google_play_services_froyo" и проекта lib содержит эти `ком.Гугл.андроид.пакеты общего собрания:
С другой стороны, новое (откр. 13), что "google_play_services" в проект lib имеет некоторые дополнительно пакеты, в ком.Гугл.андроид.собрания акционеров:
Плюс, этот пакет находится в новом (откр. 13), что "google_play_services" и: `ком.Гугл.объявлений!
Старый (откр. 12), что "google_play_services" не было:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.gms"
android:versionCode="3265130"
android:versionName="3.2.65 (834000-30)" >
<uses-sdk android:minSdkVersion="8"/>
</manifest>
Недавно ввели "и google_play_services_froyo" в проект lib имеет:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.gms"
android:versionCode="3225130"
android:versionName="3.2.25 (761454-30)" >
<uses-sdk android:minSdkVersion="8"/>
</manifest>
В "google_play_services_froyo" это функционально же, как старый (откр. 12), что "google_play_services на" lib в проект, так что, если вы просто хотите сохранить ваше приложение совместимо, а Дон'т волнует новых API, просто импортировать в "google_play_services_froyo" в вашем проекте и вы'повторно хорошо идти.
С другой стороны, если вы хотели использовать новый (откр. 13) - то "google_play_services" и проекта lib, после того как вы импортировать его, вы должны добавить в ваши приложения манифеста:
<application
...
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
Надеюсь, что это помогло :)
Я решена моя проблема с
<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" />
Я столкнулся с этой ошибки, потому что я ссылки на оригинал скопировать из каталога СДК. Убедитесь, что вы сначала скопировать библиотеку для Андроид рабочей области и только ссылаются на него. В Eclipse вы можете сделать это путем проверки на "копировать проекты в рабочей области" и при импорте проекта.