"There was a problem communicating with Google servers" during AVD configuration - xamarin

This is my first post, so I apologize in advance if somehow it does not adhere to stackoverflow's standards.
I have just created a "Hello World" Xamarin.Forms project (for Android and iOS) using VS 2019 and I am having some issues regarding Android Emulator.
When I create a new AVD and launch it for the first time, it tries to setup "Android SDK built for x86" at the virtual device. Problem is: the process stucks in the middle saying that the device couldn't sign in because there was a problem communicating with Google servers.
Has anyone experienced similar situation and found a fix? I have already tried clearing the cache of all processes and apps involved in the process with no luck.
My virtual device configuration:
Base device: Nexus 5X
Processor: x86
OS: Android Pie 9.0 - API 28

Related

Why am I having trouble with the Android Emulator in VS Comm 2017?

I was having trouble using the Android emulator in Visual Studio Community 2017 and I decided to create a blank project to see if it will run. I get this error message when attempting to run it in the Live Xamarin Player:
Starting Android Emulator Android_Accelerated_x86_Nougat...
Failed to boot Android device emulator-5554...
Unable to deploy to Android_Accelerated_x86_Nougat, please ensure the Xamarin
Live Player app is open and the device is on the same network as Visual Studio.
Why would I have trouble running the emulator in a fresh blank project when I didn't even write a single line of code? Thanks for your help.
UPDATE: So I installed the latest Android SDK 8.0 along with they system image and tried to create a virtual device that uses it. But the Android Virtual Device Manager shows a, 'No system images installed' message when I selected the 8.0 framework. So I installed an earlier version of the SDK along with a system image (5) and was able to create a virtual device with it. So another question is why wouldn't the system images show up for the 8.0 framework?
The $(TargetFrameworkVersion) for Xamarin.Forms.Platform.Android.dll
(vv8.0) is greater than the $(TargetFrameworkVersion) for your project
(v7.1). You need to increase the $(TargetFrameworkVersion) for your
project
This means the Xamarin.Forms library is targeting Android 8.0 (API level 26) but your project is setup for Android 7.1 (API level 25). You can't change the Xamarin.Forms target version without downgrading, but you can change your project target version easily. You can learn more about these concepts from Xamarin. Be aware some of the details of that Xamarin blog post are already out of date!
There is another nice blog post from Xamarin which can walk you through the process of setting your system up for Android 8.0 API level 26. It's normally not this complicated, but Google changed their SDK tools internally between 25 and 26 in very major ways. They changed from GUI tools to command line tools.
You'll probably also want to get the (in preview) Xamarin Android Device Manager if you don't have a physical device to test with. This Xamarin Android Device Manager tool is the only way to create and configure API 26 and higher emulators without using the Google command line tools.
It seems as though Google has gotten rid of the GUI apps that manage the SDK and Virtual Devices in the latest version, so when you try to create a new virtual device with 8.0 it's not compatible with the GUI tools. Until Xamarin releases a GUI tool to replace them we can use the command-line to manage the SDK and virtual devices.
https://learn.microsoft.com/en-us/xamarin/android/troubleshooting/sdk-cli-tooling-changes
https://developer.android.com/studio/command-line/avdmanager.html

Xamarin workflow on Windows

I'm aware that a Mac or a Mac service e.g. MacInCloud.com is necessary for building and submitting iOS apps.
My question is about the actual workflow of building an app on Windows using Xamarin on Visual Studio 2017.
We need to write code, test and debug throughout development cycle. How does this work with Xamarin running on Windows? How would I actually see what my mobile app looks like or behaves during the actual development cycle?
While developing my web apps in Visual Studio, there are many trips back and forth to the browsers and back to VS in order for me to see the results of my code. How does this work with Xamarin running on Windows? Is Xamarin Live Player the only option for development cycle? Is there a solution through MacInCloud or similar services so that tethering a device to dev machine is not necessary?
I'm just trying to understand how a healthy development cycle is created for Xamarin developers on Windows.
I will answer your question in few section: Coding, Debug, Test
Coding
You will be using Visual Studio to write your codes. iOS and Android code will be written in C#. You will get access to UI Designer for both iOS and Android to edit the layout files and storyboard/xibs. For 3rd party library, there is NuGet to serve your needs.
Debug
You can use Xamarin Live Player without connection to a Mac/MacInCloud for basic preview. However, some features of iOS is not available in Xamarin Live Player (e.g. xibs files not supported...).
If you setup with connection to a Mac, you will be able to see a list of Simulator that available in the Mac you connected to. By default, if you debug it, the simulator will still show up in the Mac. Then you will need to VMWare or remote into the Mac to check the simulator output. If you have Visual Studio Enterprise license, you can get access to a Remote iOS Simulator feature. You will need to turn the option ON. After that, you will able to see a remote iOS Simulator showing in your Windows machine without the needs to remote into Mac machine anymore. For debugging in actual iOS devices, you will still need to plug your device into the Mac. Previously (more than 1 years ago), Xamarin announce that they are working on "iOS USB remoting" to allow you to plug in iOS device into Windows machine and debug on it. But it is not release until now.
For Android, you can get access to Android Emulator Manager to add emulator to debug or you can deploy apps to physical phone just like what you can do with Android Studio.
Test
I will be referring to Xamarin.UITest for this part. You will be able to write UITest code in C# inside Visual Studio. Xamarin have product "Xamarin Test Cloud" to allow you to upload test code and binary and then run your test in cloud periodically. If you want to run the test locally in your machine, you will only able to run Android UITest in windows machine. To run iOS UITest locally, you will only able to run it in Mac machine. Using a Mac, you can also run Android UITest.
You can use a simulator/emulator instead of a device. For iOS, the simulator would run on the Mac Build Host that you are connected to. You can select the option for "Remote iOS simulator" in Visual Studio -> Xamarin.iOS options and you'll be able to interact with the simulator without having to RDP/VNC/look at the mac. For android, you can just run an emulator in Window and interact with it like that. Using your web apps comparison, you would use a simulator/emulator instead of browser but, for the most part, the process would be similar.
I have been developing a Xamarin MVVM app targeted at iOS and Android. I initially did the iOS development on Windows with VS 2022 and an iPhone attached via USB. I knew that I was going to have to eventually move to the Mac for final provisioning but I ended up taking that painful step earlier than planned because certain Xamarin features were just not working on Windows. First I could not get my app icon to be anything other than the Xamarin default and then Xamarin.Essentials.FilePicker would not select a file:
https://github.com/xamarin/Essentials/issues/1710
So after a week of struggling I finally got my project building and deploying on the Mac. However, I am not nearly as comfortable working on the Mac as I am on Windows where I have all my familiar development tools. So then the question was how to share the project files between the PC and the Mac so that I could edit and compile on the PC and then move to the Mac for final testing.
At first I tried iCloud but I could never get the files to sync reliably between the shared folder on the PC and the Mac. I am used to Dropbox and OneDrive, which work as expected. iCloud not so much.
So what I have been doing is committing and pushing the changes to github and then pulling the changes into the project on the Mac. It is quick and has the added benefit of version control using an offsite server. I am happy with this workflow and publishing the app on the Apple Store should be an easy task when that time comes.
Update:
This process is still working for me. I have taken the additional step of doing the release configuration on VS Mac and publishing my app to App Store Connect. That experience was convoluted and frustrating but it now works and I have people testing my app via TestFlight.
One hiccup is that when selecting Automatic iOS Bundle Signing in the project properties on VS Windows, this change gets pushed to the Mac side and causes a build error under Debug until I select the Automatic provisioning profile on the Mac. Somehow it gets set to the Wildcard profile on the Windows side.

Deploy Xamarin iOS App via Visual Studio for Windows

I want to deploy my first iOS App created with Xamarin Forms to the AppStore or at least to a single device. I have an Apple Developer Account and performed this task several times before using xCode and native iOS Apps.
But as a Windows guy I hoped to get this done for Xamarin using my VST for Windows. 
But all guides and tutorials I found are only explaining how I can deploy iOS Apps to the store and to devices using VST for Mac ... Is this the only way? How do I get the code to the Mac? Can I use the TFS Source Control? Do I have to commit every little change to TFS, check it out at the Mac, rebuild the whole app there and deploy it from the Mac?
Or are there ways and workflows that work with Windows only having the Mac 'in the background' via network?
Take a look at https://mobile.azure.com (the best solution for continuous app development: analytics, crash reports, iOS/Android/UWP builds + deploy)
I'll address the second part of your question - the ability to deploy to a single device. I'm assuming that the single device is your own device and you want to deploy via compilation. This can certainly be done from your Windows machine but due to apple licensing requirements, you will need your Mac available to compile and deploy to your phone. Your iPhone/iPad will need to be plugged into your Mac's USB.
The guides listed on the Xamarin website outline how to set up the mac build host. https://developer.xamarin.com/guides/ios/getting_started/installation/windows/connecting-to-mac/ In short, you need some prerequisites (Remote Sharing turned on, XCode installed, etc).
Once you've connected Visual Studio to your Mac, set the iOS project as the startup project, change the config from Debug to iPhone, and press F5 to compile and deploy to your device.
When in doubt, select iPhoneSimulator instead of iPhone. The simulator isn't subjected to provisioning and signing profiles which can be daunting to setup. If you can get the simulator working, you've solved the software and connectivity prerequisites.
There's a lot to configure, but it does work. This is my primary setup for Xamarin.Forms development.

Basic Android App not working on Xamarin Android Player via VS2015

I have been trying to run basic Android App provided by Visual Studio 2015 via XAMARIN Android Player. Program gets build and deployed successfully, yet, App or anything does not appear on screen. Xamarin Player takes more than 20 mins to start and then nothing happens. Find Screenshots as well.
WIthin the Android SDK Manager look under Extras there is an package called Intel x86 Emulator Accelerator (HAXM Installer). Installing HAXM will increase the speed of the emulator when you use the Intel Atom CPU/ABI
Also when creating the emulator device check Use Host GPU for increaded performance.
I ran into few issues with Xamarin Android Player as well. Currently I am using Genymotion Emulator and it is much faster.
Well, Well, Well, I got my thing up and running. Following are the steps I performed:
After installing Xamarin for VS2015, I checked for latest Android SDK via SDK Manager. Got all the necessary updates installed.
Installed Xamarin Android Player and used emulator Nexus 5 KitKat API level 19.
Earlier I was using Nexus 5 Lollipop, was the reason why, it was not working. May be its not fixed for buil yet.
As, described by Mr.Pilatus in above answer, the particular HAXM things surely does help in accelerating emulator.
Got my Android app running.
Thank you all for all the necessary suggestion and guiding my in my baby steps in XAMARIN development. Gracias. NAMASTE!

Strange windows phone app crashes only from the store

I am trying to update a 7.1 app from the store. For some reason it crashes only when installed from the store and only on 7.1 or 7.8 devices. My Lumia 920 with the latest updates works fine. The app runs fine if installed from VS 2010 or VS 2012. Of course all emulators worked fine. I put a Messagebox at Application_UnhandledException and it displayed this:
The type 'MyApp.MainPage', specified in the x:Class of
'/MainPage.xaml' could not be found in any loaded assembly.
Of course the MainPage class is there.
The app uses GPS and bing map and has capabilities:
ID_CAP_LOCATION
ID_CAP_NETWORKING
Can anyone shed some light on this?
I have just solved a similar problem where I had this error message when running from Visual Studio on my phone but not in an emulator. My problem was that I had different versions of the Microsoft.Live Assemblies in my 'main' app and the Assembly which contained the 'MainPage.xaml'.
I had a weird issue where my app worked differently from the store than on my device and the emulator. In my case it was because of trial mode. Apps run as though they are purchased when deployed to the emulator or device. It worked on my device from the store too, but that's because I bought it. Any other device which had not bought it ran in trial mode, and that's why it worked differently. I am betting that is why you are experiencing this crash. If it is not then we'll need more information.

Resources