Solucionado (ver solução)
Solucionado
(ver solução)
33
respostas

Emulador Android no Xamarin

Boa tarde,

Quanto tento selecionar o Emulador Android de modo acelerado, não aparece a opção para selecionar esse tipo de emulador no meu VS. Poderiam me ajudar!?

Abs.

33 respostas

Bom dia, tentei instalar seguindo alguns tutoriais e não obtive sucesso.

Caso alguém possa me ajudar, agradeço.

Abs.

Bom dia Adriano, já trabalhei com esse emulador:

https://www.visualstudio.com/pt-br/vs/msft-android-emulator/

ai é só instalar o perfil que você quer utilizar e iniciar o device.

É para aparecer pra você no visual studio.

Boa tarde,

Agradeço a atenção quanto ao Post Diego, todavia é interessante eu comentar que antes de formatar o meu notebook o Accelerated Emulator funcionava normalmente. Segui todos os passos de configuração para funcionamento do mesmo, a saber:

  1. Verificação de Aceleração pela BIOS.
  2. INstalação do HAXM corretamenta.
  3. Validação do Processador ter suporte ao mecanismo de virtualização.
  4. Atualizações necessárias no VC 2015 (o qual utilizo).
  5. Desinstalação do Hyper-V.

Ao entrar no SDK Manager, mostra que não há compatibilidade para fazer o download desse tipo de emulador, apresentando a seguinte marcação:

"Intel x86 Emulator Accelerator HAXM (HAXM Installer) - Not compatible with Windows"

Gostaria de utilizar esse emulador.

Aguardo, obrigado novamente.

Abs.

Outro detalhe: s eu tento criar qualquer outra emulação, apresenta a seguinte mensagem...

Starting emulator for AVD 'AVD_for_Nexus_S_by_Google' emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: Please disable Hyper-V before using the Android Emulator. Start a command prompt as Administrator, run 'bcdedit /set hypervisorlaunchtype off', reboot.

Aguardo, Abs.

Vamos lá novamente...

Eu consegui criar um Emulador com as configurações mínimas, na ideia de que assim a execução pudesse ser mais rápida. Ao entrar no SDK Manager do VC 2015, e dar um "Start" no Emulador criado, ele carrega normalmente (vamos lembrar ainda que não estou conseguindo utilizar o Accelerated Emulator, e gostaria de ter ele funcionando) - essa foi uma medida secundária.

Contudo, ao rodar o projeto, sem nenhum conteúdo modificado (ou seja, crio um novo projeto e executo somente), apresenta o erro abaixo:

Severity    Code    Description    Project    File    Line    Suppression State
Error        The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
   at System.IO.PathHelper.GetFullPathName()
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetFullPathInternal(String path)
   at Xamarin.Android.Tools.Files.ExtractAll(ZipArchive zip, String destination, Action`2 progressCallback, Func`2 modifyCallback, Func`2 deleteCallback, Boolean forceUpdate)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()    prjTestDrive.Android

Obs.: instalei todas as possíveis bibliotecas, atualizações, procedimentos, tudo o que fui orientado.

Me ajudem, por favor.

Abs.

Olá, Adriano

Sinto muito pelo seu transtorno.

Vou indicar a resposta que demos ao aluno Leonardo, que teve o mesmo problema com o erro The "ResolveLibraryProjectImports" task failed unexpectedly.:

https://cursos.alura.com.br/forum/topico-xamarin-forms-atualizar-pacotes-nuget-39715

Você deve atualizar apenas o Xamarin.Forms, em vez de atualizar todas as dependências em conjunto com o Xamarin.Forms. Fazer isso é como fazer uma "atualização centralizada", já que o Xamarin.Forms depende de todo o resto, ele irá também procurar a versão mais atualizada de cada componente.

Depois de seguir esses passos, ainda recomendo limpar a solução (com Clean Solution) e executar o projeto.

Veja se resolve. Se não, vamos conversando por aqui para encontrar uma solução.

Marcelo, boa noite.

Obrigado pelo seu retorno. Vamos lá:

Foram solicitadas algumas atualizações do Xamarin para VS 2015, nas quais instalei todas (percebi que com isso, o projeto perdia N referências). Mesmo utilizando o VS 2015 não tenho todas aquelas opções de acordo com o seu curso, ao iniciar um novo projeto (na escolha dos Templates). Mas percebi que mediante essas atualizações, agora ao selecionar "Cross-Platform App (Xamarin)", é aberta uma janela secundária onde consigo selecionar "UI Technology" (opto por "Xamarin.Forms") e "Code Sharing Strategy" (escolho a opção "Portable Class Library PCL") - visualizei alguns fóruns antigos e acompanhei que por conta dessas novas atualizações, apenas mudaram os Templates iniciais.

Pois bem, crieio projeto do zero para verificar se iniciava de modo normal. Apenas para que acompanhe, não são apresentados para mim aqueles N Projetos de acordo com cada Plataforma, mas acredito que sejam efeitos das atualizações do VS 2015 (aparecem: "Portable", "Android", "iOS" e "Universal Windows").

Status: o projeto iniciou de modo normal, sendo aberto o Emulador que eu havia criado de maneira manual - já que o Accelerated não é apresentado para mim.

Agora vamos ás perguntas:

  1. Não entendi muito bem a questão de atualizar apenas o "Xamarin.Forms" - no caso, quando aparecerem atualizações disponíveis, devo atualizar somente àquela que for voltada para esse título, é isso!? Pois não costumo atualizar nada quando não é solicitado, sou iniciante no Curso de Xamarin.

  2. Não está sendo apresentado para mim, nos emuladores disponíveis, o "Accelerated Emulator" - visto que antes de formatar o meu notebook, aparecia de modo normal. Vale destacar que realizei todos os procedimentos que acompanhei nos fóruns, inclusive nos sites terceiros:

    • Desabilitação do Hyper-V (nos serviços do Windows, retirando-o dos Recursos Instalados do Windows, pelo CMD - comandos que você orientou em artigos passados).

    • Instalação do HAXM (verifiquei se realmente foi instalado, e foi).

    • Verificação de compatibilidade do Processador quanto ao recurso de aceleração (é compatível).

    • Verificação da BIOS (estão habilitados os modos de aceleração, normais).

Como devo proceder para ter esse mecanismo (emulador) instalado!? Ahh, antes que me esqueça eu instalei todos os pacotes disponíveis no SDK Manager, com exceção do "Intel x86 Emulator Accelerator HAXM (HAXM Installer)" , onde marca como "Not compatible with Windows" - sendo que já realizei os passos acima e não entendo o porquê mostrar assim.

Ficamos em aberto com esse emulador, no caso, onde conto com a sua ajuda se possível para sanarmos o problema (tenho conhecimento quanto ao desligamento do Hyper-V, para a execução de certos emuladores).

Aguardo, desculpe o texto muito grande, contudo quis explicar os passos que já fiz.

Abs.

Boa noite!

Alguma novidade quanto aos meus últimos detalhamentos?

Obrigado, Abs.

Olá, Adriano

Lendo novamente sua antepenúltima mensagem, uma mensagem de erro me chamou a atenção:

System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

Esse tipo de erro acontece porque o caminho completo de 1 ou mais arquivos da solução é muito grande. Imagino que você tenha baixado o arquivo compactado da aula, não? Nesse caso, verifique o nome do arquivo .zip, por exemplo:

xamarin-crie-aplicacoes-mobile-06e8b31a5a30d4b2fc7fccd39a9aba1ad28bd8b7.zip

Esse tipo de nome longo acaba gerando erros no compilador do .NET, pois os arquivos descompactados acabam ficando com um caminho completo muito grande.

O que fazer?

Renomeie o arquivo .zip para um nome curto, como por exemplo:

xam1_2.zip

Em seguida, extraia o .zip para uma pasta e abra a solução descompactada.

Marcelo, boa tarde.

Obrigado pelo retorno, contudo não baixei nenhum documento da aula.

Esses problemas iniciais foram sanados, visto que as atualizações acabaram influenciando nas execuções.

Conforme meu último post, minhas dúvidas agora são outras: em especial, o caso de não aparecer pra mim o Emulador Acelerado conforme descrevi acima.

Poderia me ajudar nesse caso?

Além disso, fiz um questionamento quanto as atualizações. Peço que leia novamente as perguntas que fiz acima, pfv.

Obs: obrigado pelas explicações quanto ao nome do arquivo, mas pretendo solucionar as dúvidas mencionadas.

Abs.

Adriano, qual a versão do Windows atualmente instalada?

Windows 10 Pro x64.

Obs.: Antes da formatação o Emulador aparecia normal.

Vejo que você desabilitou o Hyper-V, o que é um pré-requisito, então veja se a versão do HAXM é essa última (setembro/2017):

https://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager-intel-haxm

Você já fez tudo que foi orientado nos tutoriais de Xamarin, então talvez seja um problema com as últimas atualizações do Windows.

Desabilitei sim.

Desabilitei sim.

Vou verificar, um momento...

Estou com essa versão instalada do HAXM (a mesma que mencionou acima).

Já desinstalei e instalei novamente o VC, atualizei, fiz todos os procedimentos e esse emulador não funciona.

solução!

Selecione cada projeto da solução e com CTRL+Enter, abra propriedades. Vá para aba Build, e veja como está o Platform Target.

Peguei este último procedimento no Stack Overflow:

https://stackoverflow.com/a/41102254/1123307

  1. Baixe o HAXM da Intel a partir do link https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager
  2. Descompacte o zip e rode o executável: intelhaxm-android.exe
  3. Rode silent_install.bat

Respondendo seu Post acima, visualizei o Platform Target, todos estão como "Any CPU".

Estarei verificando seu Post seguinte, referente ao Stack Overflow.

Fiz os procedimentos da Stack Overflow, reiniciei o notebook e não apresentou nenhuma mudança.

Abs.

Qual mensagens aparecem agora na hora de fazer o build/deploy? Pode copiar o conteúdo inteiro do output aqui pra gente?

Quais os nomes dos emuladores disponíveis no Visual Studio que aparecem pra você?

Vamos lá:

Output Solicitado:

1>------ Build started: Project: prjTestDrive.Android, Configuration: Debug Any CPU ------
2>------ Skipped Build: Project: prjTestDrive.UWP, Configuration: Debug x86 ------
2>Project not selected to build for this solution configuration 
3>------ Skipped Build: Project: prjTestDrive.iOS, Configuration: Debug iPhoneSimulator ------
3>Project not selected to build for this solution configuration 
1>  prjTestDrive.Android -> C:\Users\Adriano\documents\visual studio 2015\Projects\prjTestDrive\prjTestDrive\prjTestDrive.Android\bin\Debug\prjTestDrive.Android.dll
========== Build: 1 succeeded, 0 failed, 1 up-to-date, 2 skipped ==========

Nomes que aparecem para mim (dos emuladores, no Visual Studio):

A. 5" KitKat (4.4) XXHDPI Phone (Android 4.4 - API 19)

B. 7" KitKat (4.4) XXHDPI Tablet (Android 4.4 - API 19)

C. AVD_GalaxyNexus_ToolsForApacheCordova (Android 4.4 - API 19).

Enquanto isso, para dar continuidade no meu curso enquanto resolvemos esse caso do Emulador Acelerado, criei um Emulador Manualmente, com as seguintes configurações:

Device: Nexus S (4.0"", 480 x 800 : hdpi) Target: Android 6.0 - API Level 23 CPU/ABI: Google APIs Intel Atom (x86) Skin: No Skin Front Camera: None Back Camera: Nome RAM: 343 VM Heap: 32 Internal Storage: 200

Com esse modelo que criei, percebi que roda sem o Hyper-V, sendo que ele inicia e consigo rodar de momento meus projetos para acompanhar as atualizações.

Contudo, esse ainda não é o Acelerado...

Abaixo, o Output solicitado:

Olá Adriano. Na minha opinião, os emuladores do VS são muito lentos e dão muito problema pra instalar. Eu faço todo o deploy no meu celular Android. É só conectar o celular via USB que o VS já reconhece, e aí você já consegue ver o que está acontecendo no próprio celular. Inclusive, chegou uma atualização super recente que você consegue rodar o app no Xamarin Live. Vale a pena dar uma olhada!

Obrigado pelas informações, Adriano

Estranho seus emuladores estarem ainda com a versão Android 4.4 (o meu está com versão Android 6.0). Não falta nenhum pacote mais recente para instalar pelo Android SDK Manager?

Veja se você consegue criar um Emulador com esses dados, no Android Virtual Device (AVD) Manager:

Name: Android_Accelerated_x86 Target: Google APIs - API Level 23 CPU/ABI: Google APIs Intel Atom (x86)

SD Card: Size: 512

Skin: Resolution: 768 x 1280

Guilherme von Zuben Ricetto: obrigado pela dica, acredito sim que esse método torna a execução mais rápida e pode ajudar na emulação. Todavia, gostaria de validar desse Post a questão do Accelerated Emulator, para fins de documentações e correções desse cenário - onde inclusive outros leitores poderão acompanhar com o tempo, caso surjam problemas parecidos (visto que em outros casos que analisei, não houve solução para esse problema).

Muito grato pela sua sugestão!

__

Marcelo Oliveira: Qual Devide devo escolher!? Não tenho a opção no Skin quanto ao Size. Apenas defino isso no item Device, no qual aparecem N opções com a mesma resolução.

Quanto às atualizações, instalei todas as disponíveis pelo SDK Manager, com exceção daquela que informei do Intel x86 HAXM Accelerated - no qual para mim diz não ser compatível, mesmo sendo!

Abs.

Aguardo.

Criei o Emulador que recomendou. Contudo, adicionei no item Device, o Nexus 4 (4.7", 768 x 1280: xhdpi) - único que percebi disponível, de acordo com a resolução. Ao executar, ele realiza o processo normal.

Esse que criei no caso, possui as mesmas configurações do Accelerated!? Ao mesmo tempo, as versões pré-definidas que aparecem para mim são aquelas 4.4 que informei... há 6.0 caso eu deseje criar de modo manual os Emuladores. Mas, por padrão, não...

Abs.

Observação: ao executar esse novo emulador recentemente criado, apresenta a seguinte mensagem:

Starting emulator for AVD 'Android_Accelerated_x86'
Hax is enabled
Hax ram_size 0x77300000
HAX is working and emulator runs in fast virt mode.
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554

Ele abre normal, mas demora muito tempo para isso. Outra observação é que ele não aparece na listagem de emuladores quando executo o projeto, preciso dar um Start de modo manual, acessando o "Open Android Emulator Manager - AVD) e dando o Start por ai apenas.

Esse que criei no caso, possui as mesmas configurações do Accelerated!?

Sim, eu te passei as mesmas configurações do meu emulador acelerado. A questão é que ele roda em Intel x86, e não em ARM, como o outro emulador:

Emulador: Android_Accelerated_x86
CPU/ABI: Google APIs Intel Atom (x86)

Emulador: Android_ARMv7a
CPU/ABI: Google APIs ARM (armeabi-v7a)

Meu emulador abre com as mensagens abaixo:

1>Starting deploy Android_Accelerated_x86 ...
1>Starting emulator Android_Accelerated_x86 ...
1>C:\Users\marce\AppData\Local\Android\ANDROI~1\tools\emulator.EXE -partition-size 512 -no-boot-anim -avd Android_Accelerated_x86 -prop monodroid.avdname=Android_Accelerated_x86
1>emulator: WARNING: Crash service did not start
1>Hax is enabled
1>Hax ram_size 0x40000000
1>HAX is working and emulator runs in fast virt mode.
1>emulator: Listening for console connections on port: 5554
1>emulator: Serial number of this emulator (for ADB): emulator-5554
1>Emulator Android_Accelerated_x86 is running.
1>Waiting for emulator to be ready...
1>...
1>...

Há alguma sugestão quanto aos meus emuladores padrões com a versão 4.4? Apesar de que eles são apenas modelos pré-definidos correto!? Posso criar outros com versões mais novas.

Ele abre normal, mas demora muito tempo para isso.

Comigo às vezes demora para abrir também. O primeiro deploy sempre falha. Em seguida, eu cancelo o deploy e assim que o emulador subiu, eu faço um novo deploy, e dessa vez sim funciona.

Outra observação é que ele não aparece na listagem de emuladores quando executo o projeto, preciso dar um Start de modo manual, acessando o "Open Android Emulator Manager - AVD) e dando o Start por ai apenas.

Talvez você precise fechar e reabrir o Visual Studio.

Legal, apareceu reiniciando o VS 2015, assim como obtive um descritivo parecido com o seu acima (referente ao output, quando executo pelo emulador acelerado criado) - além de outras N referências.

Bom, podemos concluir então que o fato de não ter vindo com o Emulator Accelerated se deu por conta dessas atualizações novas!?

Bem como não são apresentados emuladores com a versão 6.0 (como o seu) pelo mesmo motivo!? Esses modelos apresentados, me corrija se estiver errado, não possuem tanta relevância, visto que posso criar outros com versões mais recentes, como acabamos de criar certo!? São apenas modelos pré-definidos correto!?

Acredito que dessa forma manual como foram criados os emuladores, com as mesmas configurações do Accelerated (e também observei que ao executar, aparece no Output a chamada do HAXM - antes não aparecia), o problema da pergunta 1 foi resolvido certo!? Ou há algo a complementar!?

Em aberto, a pergunta 2 que não havia entendido muito bem quando às atualizações do Xamarin.Forms: você havia orientado a atualizar somente esse item quando solicitado, por conta da tratativa centralizada. Mas geralmente não atualizo por conta própria, apenas quando aparecem sugestões de atualizações... nessas que aparecerem, eu seleciono apenas Xamarin.Forms no caso para atualizar!?

Abs.