Это приложение не будет работать, если вы не обновите Google Play Services (через базар)
я тестирую новый Google Maps API V2 для Android, и я получаю это сообщение при запуске приложения:
это работает на эмуляторе 4.1.
вот мой AndroidManifest.xml
file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maptest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<permission
android:name="com.example.maptest.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Require OpenGL ES version 2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="##myapikey##"/>
</application>
</manifest>
Файл MainActivity.java:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>
</RelativeLayout>
нажатие кнопки "Обновить" приводит к сбою приложения со следующим stacktrace:
E/Trace(1034): error opening trace file: No such file or directory (2)
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
D/gralloc_goldfish(1034): Emulator without GPU emulation detected.
D/AndroidRuntime(1034): Shutting down VM
W/dalvikvm(1034): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
E/AndroidRuntime(1034): FATAL EXCEPTION: main
E/AndroidRuntime(1034): android.content.ActivityNotFoundException: No Activity found to handle Intent
{ act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details?
id=com.google.android.apps.bazaar flg=0x80000 pkg=com.android.vending }
E/AndroidRuntime(1034): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
E/AndroidRuntime(1034): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
E/AndroidRuntime(1034): at android.app.Activity.startActivityForResult(Activity.java:3351)
E/AndroidRuntime(1034): at android.app.Activity.startActivityForResult(Activity.java:3312)
E/AndroidRuntime(1034): at android.app.Activity.startActivity(Activity.java:3522)
E/AndroidRuntime(1034): at android.app.Activity.startActivity(Activity.java:3490)
E/AndroidRuntime(1034): at com.google.android.gms.internal.c.onClick(Unknown Source)
E/AndroidRuntime(1034): at android.view.View.performClick(View.java:4084)
E/AndroidRuntime(1034): at android.view.View$PerformClick.run(View.java:16966)
E/AndroidRuntime(1034): at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime(1034): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(1034): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(1034): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime(1034): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1034): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(1034): at dalvik.system.NativeStart.main(Native Method)
Я также ссылался на Проект Google Play Services. Что я здесь делаю не так?
обновление
соответствующая ошибка в Google issue tracker (https://issuetracker.google.com/issues/35822258) было решено некоторое время назад.
теперь вы можете использовать Google Maps Android API в эмуляторе и создавать виртуальные устройства с Play services, как описано в этом ответе:
12 ответов:
по данным обсуждение с Разработчики Android в Google+ запуск нового API Карт на эмуляторе в данный момент невозможен.
(комментарий от Желязко Атанасова вчера в 23: 18, я не знаю, как к нему напрямую подключиться)
кроме того, вы не видите "(через базар)" часть при запуске с фактического устройства, и кнопка обновления открыть Play Store. Я предполагаю, что базар предназначен для предоставления Google Играйте в сервисы на эмуляторе Android, но он еще не готов...
обновление
Google maps API v2 теперь установлен на последних изображениях системы Google (api:19 ARM или x86).
Поэтому ваше приложение должно просто работать с новыми изображениями. Нет необходимости устанавливать эти файлы.Я пытался запустить приложение Android Google Maps V2 под эмулятором, и как только я, наконец, запустил службы Google Play, я обновил свой SDK до версии Google Play Services 4 и мой эмулятор больше не будет запускать мое приложение.
теперь я разработал, как обновить эмулятор с моего планшета transformer. (Вам не понадобится планшет, как вы можете скачать файлы ниже.)
Я использовал Titanium Backup для резервного копирования моего Asus Eee Pad Transformer (TF101) и затем схватил сом.андроид.вендинг и ком.гуглить.андроид.ГМС APK файлы из резервной копии.
Я установил их на эмулятор, настроенный с платформой: 4.1.2, Уровень API: 16, процессор Intel / Atom x86) и мое приложение Google Maps V2 снова работает.
вот и все .. ни один из других шагов, касающихся /системы / приложения, не требовался.
мое приложение использует только Google Maps API, без сомнения, больше шагов требуется, если вы используете другие сервисы Google Play.
новые файлы для последней версии Google Play услуги:
те же инструкции, что и раньше: создать новый эмулятор с CPU/ ABI, не-Google API target (версии 10-19 работают) и GPU эмуляция включена или выключена, а затем установите файлы:
adb install com.android.vending-20140218.apk adb install com.google.android.gms-20140218.apk
Если вы обновляете существующий эмулятор, то вам может потребоваться удалить предыдущие версии:
adb uninstall com.android.vending adb uninstall com.google.android.gms
вот и все.
Я потратил около одного дня, чтобы настроить новые gmaps API (Google Maps Android API v2) на эмуляторе Android. Ни один из методов тех, которые я нашел в Интернете, не работал правильно для меня. Но все же я сделал это. Вот как:
- создайте новый эмулятор со следующей конфигурацией:
на других версиях я не мог настроить из-за различных ошибок при установке необходимых приложения.
2) Запустите эмулятор и установите следующие приложения:
- GoogleLoginService.apk
- GoogleServicesFramework.apk
- Phonesky.apk
вы можете сделать это с помощью следующей команды:
2.1)
adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
2.2)adb shell chmod 777 /system/app
2.3-2.5)adb push Each_of_the_3_apk_files.apk /system/app/
ссылки скачать APK файлы. Я скопировал их с моего корневого Android устройство.
3) установить Google Play Services и Google Maps на эмуляторе. У меня есть ошибка 491, если я устанавливаю их из Google Play магазине. Я загрузил приложения в эмулятор и запустил установку локально. (Вы можете использовать
adb
установить этот.) Ссылки на приложения:4) я успешно запускаю демонстрационный образец на эмуляторе после этих шагов. Вот скриншот:
Я отвечаю на этот вопрос во второй раз, потому что решение, которое я пробовал, которое сначала не работало, теперь работает, и я могу воссоздать шаги, чтобы заставить его работать :)
У меня также было ощущение, что отсутствие Google Play Store является виновником здесь, поэтому я попытался установить Google Play Store в эмулятор по совету этой ссылке и этой ссылке смешанная. У меня были некоторые трудности, но в конце концов мне удалось установить Google Play Store и протестировал его, загрузив какое-то случайное приложение. Но активность карт продолжала отображать сообщение с кнопкой "Обновить". Эта кнопка приведет меня в магазин, но там я получу сообщение о "товар не найден", и карты все еще не работают. В этот момент я сдался.
вчера я случайно запустил одно и то же тестовое приложение, и оно сработало! Я был очень смущен, но быстро я сделал отличие от эмулятора, где он работает, и новый чистый, и я определил два приложения на рабочий в каталоге/data/ app/: com.андроид.торговый-1.apk и com.гуглить.андроид.ГМС-1.АПК. Это странно, так как, когда я устанавливал Google Play Store по инструкциям с этих сайтов, я нажимал Phonesky.apk, GoogleServicesFramework.apk и GoogleLoginService.apk и в другую папку / систему / приложение.
в любом случае, теперь Android Google Maps API v2 работает на моем эмуляторе. Вот шаги, чтобы сделать это:
создать новый эмулятор
- на устройства, выберите " 5.1 " WVGA (480 x 800: mdpi)"
- на цель, выберите "Android 4.1.2-API level 16"
- для "CPU / ABI", выберите "ARM"
- оставить по умолчанию
Это настройки, которые работают для меня. Я не знаю для разных.
запустить эмулятор
установить com.андроид.торговый-1.apk и com.гуглить.андроид.ГМС-1.apk через команду установки ADB
Google Maps теперь должны работать в вашем эмуляторе.
Я создал (немецкий) описание, как заставить его работать. Вам в основном нужен эмулятор с уровнем API 9 и без API Google. Тогда вам придется получить APKs от rooted устройство:
adb -d pull /data/app/com.android.vending-2.apk adb -d pull /data/app/com.google.android.gms-2.apk
и установить их в эмулятор:
adb -e install com.android.vending-2.apk adb -e install com.google.android.gms-2.apk
вы даже можете запустить собственное приложение Google Maps, если у вас есть эмулятор с уровнем API 14 и дополнительно установить
com.google.android.apps.maps-1.apk
получать удовольствие.
Я пытался запустить Android Google Maps v2 под эмулятором, и я нашел много способов сделать это, но ни один из них не работал для меня. У меня всегда есть это предупреждение в Logcat
Google Play services out of date. Requires 3025100 but found 2010110
и когда я хочу обновить сервисы Google Play на эмуляторе ничего не произошло. Проблема была в том, что com.гуглить.андроид.ГМС APK не был совместим с версией библиотеки в моем Android SDK.Я установил эти файлы " com.гуглить.андроид.СБМ.АПК", "com.андроид.продажа.apk " на моем эмуляторе и моем приложении Google Maps v2 работал нормально. Ни один из других шагов, касающихся /системы / приложения, не требовался.
Это приложение не будет работать, если вы не обновите Google Play Services. Я пробовал это в течение такого долгого времени, но все же я не получил карту... Появляется только пустой экран, даже если я изменил свой сервис Google Play, указанный ниже комментарием..
Проверьте файл манифеста play services и проверьте код версии для файла APK com.гуглить.андроид.СБМ. В приведенном ниже, это "3136110". Загрузите эти файлы APK и установите из приглашения DOS, но перед запуском установки ваш целевой эмулятор.
package="com.google.android.gms" android:versionCode="3136110" android:versionName="3.1.36 (673201-10)
Я получил эти файлы APK от этой ссылке.
я решил эту проблему, выполнив следующие шаги:
В Эмуляторе:
вы должны использовать последнюю версию API
Google APIs(Google Inc.)-API Level 19
.сделайте остальные вещи, размещенные на самом скриншоте.
ключ API:
создайте новый ключ API и тщательно проверьте ключ API Google Map и ключ SHA.
Google Play Услуги:
вы должны загрузить последние сервисы Google Play com. android. vending-4.8.20. apk. На этом сайте, если google play услуг не означает, что вы можете найти много сайтов в интернет по имени
com.android.vending 4.8.20.apk
.вы можете запустить службы Google play с помощью командной строки
adb install com.android.vending 4.8.20.apk
.Примечание: вы должны загрузить последние службы Google play, потому что год за годом будет обновляться последняя версия в интернете.
выход:
после обновления до ADT 22.0.1, из-за частных библиотек Android, сервис Google Maps давал некоторую ошибку, и приложение разбилось. Так что я нашел решение, наконец, и это сработало для меня.
просто установите сервисную библиотеку Google Play, а затем перейдите в
google-play-service/libproject/google-play-services_lib
сhttps://www.dropbox.com/sh/2ok76ep7lmav0qf/9XVlv61D2b
. Импортировать в рабочую область. Очистите свой проект, где вы хотите использовать gogole-play-services-lib, а затем построить его снова и перейти к проект ->свойства -> Java BuildPath -> выберите "частные библиотеки Android, зависимости Android, google-play-service"в самих свойствах перейдите на Android, а затем выберите любую из версий, а затем выберите Добавить и выберите google-play-service-lib, а затем нажмите Применить и, наконец, OK.
наконец, перейдите в проект - > Android Tools - > библиотеки поддержки Android. Примите лицензию и после установки запустите свой проект.
Он будет работать нормально.
Я нашел хорошее решение, которое позволит вам протестировать ваше приложение в эмуляторе, а также не требует, чтобы вы вернулись к старой версии библиотеки. Смотрите ответ на вопрос переполнения стека запуск Google Maps v2 на эмуляторе Android.