Estou testando a nova API V2 do Google Maps para Android e recebo esta mensagem quando o aplicativo é iniciado:
Ele está sendo executado em um emulador 4.1.
Aqui está meu AndroidManifest.xml
arquivo:
<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>
Arquivo 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;
}
}
Arquivo 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>
Clicar em "Atualizar" trava o aplicativo com o seguinte rastreamento de pilha:
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$2.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)
Também fiz referência ao projeto Google Play Services. O que eu estou fazendo errado aqui?
ATUALIZAR
O bug correspondente no rastreador de problemas do Google ( https://issuetracker.google.com/issues/35822258 ) foi resolvido há algum tempo.
Agora você pode usar a API Android do Google Maps no emulador e criar dispositivos virtuais com o Play Services, conforme descrito nesta resposta:
android
google-maps
android-mapview
google-maps-android-api-2
soren.qvist
fonte
fonte
Respostas:
De acordo com uma discussão com desenvolvedores Android no Google+, executar a nova API do mapa no emulador não é possível no momento.
(O comentário é de Zhelyazko Atanasov ontem às 23:18, não sei como vincular diretamente a ele)
Além disso, você não vê a parte " (via Bazaar) " ao executar a partir de um dispositivo real e o botão de atualização abre a Play Store. Estou assumindo que o Bazaar se destina a fornecer o Google Play Services no emulador Android, mas ainda não está pronto ...
fonte
ATUALIZAR
A API v2 do Google maps agora está instalada nas imagens de sistema do Google mais recentes (api: 19 ARM ou x86).
Portanto, seu aplicativo deve funcionar apenas com as novas imagens. Não há necessidade de instalar esses arquivos.
Tenho tentado executar um aplicativo Android Google Maps V2 em um emulador e, quando finalmente coloquei o Google Play Services em execução, atualizei meu SDK para a revisão 4 do Google Play Services e meu emulador não executou mais meu aplicativo.
Agora descobri como atualizar meu emulador no meu tablet transformador. (Você não precisará de um tablet, pois pode baixar os arquivos abaixo).
Eu usei o Titanium Backup para fazer backup do meu Asus Eee Pad Transformer (TF101) e, em seguida, peguei os arquivos APK com.android.vending e com.google.android.gms do backup.
Instalei-os em um emulador configurado com a plataforma: 4.1.2, API Level: 16, CPU Intel / Atom x86) e meu aplicativo Google Maps V2 funciona novamente.
Isso foi tudo ... nenhuma das outras etapas relacionadas a / system / app foi necessária.
Meu aplicativo usa apenas a API do Google Maps, sem dúvida, mais etapas são necessárias se você usar outros serviços do Google Play.
Novos arquivos para os serviços mais recentes do Google Play:
com.google.android.gms-20140218.apk
com.android.vending-20140218.apk
Mesmas instruções de antes: crie um novo emulador com qualquer CPU / ABI , um destino de API que não seja do Google (as versões 10-19 funcionam) e emulação de GPU ativada ou desativada e, em seguida, instale os arquivos:
Se você estiver atualizando um emulador existente, pode ser necessário desinstalar as versões anteriores:
Isso é tudo.
fonte
adb uninstall com.android.vending
eadb uninstall com.google.android.gms
. Depois de instalar os pacotes mencionados acima, meu aplicativo é executado, mas vejoEGL_emulation: eglSurfaceAttrib not implemented
mensagens de aviso no log e nenhum mapa é visível no aplicativo. Este é, eu acredito, problema de emulador / GPU. Minha GPU éRadeon HD6870
e eu estava executando o Android 4.1.2 sem APIs do Google no emulador.Passei cerca de um dia configurando a nova API gmaps (Google Maps Android API v2) no emulador Android. Nenhum dos métodos que encontrei na Internet estava funcionando corretamente para mim. Mas ainda assim eu fiz. Aqui está como:
Nas outras versões não consegui configurar devido a vários erros ao instalar os aplicativos necessários.
2) Inicie o emulador e instale os seguintes aplicativos:
Você pode fazer isso com os seguintes comandos:
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/
Links para baixar arquivos APK . Eu os copiei do meu dispositivo Android com root.
3) Instale o Google Play Services e o Google Maps no emulador. Eu tenho um erro 491, se eu instalá-los da Google Play Store. Eu carreguei os aplicativos para o emulador e executei a instalação localmente. (Você pode usar
adb
para instalar isso). Links para os aplicativos:4) Executei com êxito um exemplo de demonstração no emulador após essas etapas. Aqui está uma captura de tela:
fonte
adb install com.google.android.apps.maps-1.apk
eadb install com.google.android.gms-2.apk
.Estou respondendo a esta pergunta pela segunda vez, porque a solução que tentei que não funcionou no início agora funciona, e posso recriar as etapas para fazê-la funcionar :)
Também tive a sensação de que a falta da Google Play Store é a culpada aqui, então tentei instalar a Google Play Store no emulador por meio deste link e deste link combinado. Tive algumas dificuldades, mas no final consegui instalar o Google Play Store e testei baixando algum aplicativo aleatório. Mas a atividade de mapas continuou exibindo a mensagem com o botão "Atualizar". Esse botão me levava para a loja, mas lá recebia uma mensagem sobre "item não encontrado" e os mapas ainda não funcionavam. Nesse ponto, desisti.
Ontem, ativei o mesmo aplicativo de teste por acidente e funcionou! Eu estava muito confuso, mas rapidamente fiz uma comparação do emulador onde ele está funcionando e um novo e limpo e determinei dois aplicativos no que estava funcionando no diretório / data / app /: com.android.vending-1. apk e com.google.android.gms-1.apk. Isso é estranho, pois, quando estava instalando o Google Play Store por instruções desses sites, estava enviando Phonesky.apk, GoogleServicesFramework.apk e GoogleLoginService.apk e para uma pasta / sistema / aplicativo diferente.
De qualquer forma, agora o Android Google Maps API v2 está funcionando no meu emulador. Estas são as etapas para fazer isso:
Crie um novo emulador
Estas são as configurações que estão funcionando para mim. Eu não sei por diferentes.
Inicie o emulador
instale com.android.vending-1.apk e com.google.android.gms-1.apk através do comando de instalação ADB
O Google Maps deve funcionar agora em seu emulador.
fonte
Eu criei uma descrição (em alemão) de como fazê-lo funcionar . Você basicamente precisa de um emulador com pelo menos API de nível 9 e sem APIs do Google. Em seguida, você terá que obter os APKs de um dispositivo com acesso root :
e instale-os no emulador:
Você pode até mesmo executar o aplicativo nativo do Google Maps, se tiver um emulador com pelo menos API de nível 14 e instalar adicionalmente
com.google.android.apps.maps-1.apk
Diverta-se.
fonte
Tenho tentado executar um Google Maps v2 Android em um emulador e descobri muitas maneiras de fazer isso, mas nenhuma delas funcionou para mim. Sempre tenho esse aviso no Logcat
Google Play services out of date. Requires 3025100 but found 2010110
e quando quero atualizar o Google Play Services no emulador nada acontece. O problema era que o APK com.google.android.gms não era compatível com a versão da biblioteca em meu Android SDK.Instalei esses arquivos "com.google.android.gms.apk", "com.android.vending.apk" no meu emulador e meu aplicativo Google Maps v2 funcionou bem. Nenhuma das outras etapas relacionadas a / system / app foi necessária.
fonte
Este aplicativo não será executado a menos que você atualize o Google Play Services. Eu tentei por muito tempo, mas ainda não consegui pegar o mapa ... Apenas uma tela em branco está aparecendo, mesmo que eu modifiquei meu serviço Google Play fornecido pelo comentário abaixo ..
Verifique o arquivo de manifesto do Play Services e o código da versão do arquivo APK com.google.android.gms. Abaixo, é "3136110". Baixe esses arquivos APK e instale a partir de um prompt do DOS, mas antes da instalação, execute o emulador de destino.
Peguei esses arquivos APK neste link .
fonte
Resolvi esse problema executando as seguintes etapas:
No emulador:
Você deve usar a API mais recente
Google APIs(Google Inc.)-API Level 19
.Faça o resto das coisas colocadas na própria captura de tela.
Chave API:
Crie uma nova chave de API e verifique cuidadosamente sobre a chave de API do Google Map e a chave SHA.
Serviços do Google Play:
Você deve baixar a última versão do Google Play Services com.android.vending-4.8.20.apk . Nesse site, se os serviços do Google Play não estiverem funcionando, significa que você pode encontrar muitos sites na internet chamados
com.android.vending 4.8.20.apk
.você pode executar o Google Play Services usando o Prompt de Comando
adb install com.android.vending 4.8.20.apk
.Nota: Você deve baixar os serviços mais recentes do Google Play porque a versão mais recente ano a ano será atualizada na Internet.
saída :
fonte
Após a atualização para o ADT 22.0.1, devido às bibliotecas privadas Android, o serviço Google Maps estava apresentando algum erro e o aplicativo travou. Então, finalmente encontrei a solução e funcionou para mim.
Basta instalar a biblioteca de serviços do Google Play e ir para
google-play-service/libproject/google-play-services_lib
dehttps://www.dropbox.com/sh/2ok76ep7lmav0qf/9XVlv61D2b
. Importe isso para o seu espaço de trabalho. Limpe seu projeto onde deseja usar gogole-play-services-lib e, em seguida, crie-o novamente e vá para Projeto -> Propriedades -> Java BuildPath -> selecione "Bibliotecas privadas do Android, dependências do Android, google-play-service"Em Propriedades, vá para Android e escolha qualquer uma das versões e, em seguida, escolha adicionar e selecione google-play-service-lib e pressione aplicar e, finalmente, OK.
Por fim, vá para Projeto -> Ferramentas Android -> Bibliotecas de suporte Android. Aceite a licença e após a instalação execute seu projeto.
Vai funcionar bem.
fonte
Eu encontrei uma boa solução que permite testar seu aplicativo no emulador e também não exige que você reverta para a versão anterior da biblioteca. Veja uma resposta à pergunta Stack Overflow Executando o Google Maps v2 no emulador Android .
fonte
No Android SDK Manager, instale: Extras: Google Play Services
fonte
isso funciona para mim, a versão atual é 10.0.1
fonte