Issue
This is how the Xamarin SDK Manager looked when Visual Studio for Mac was first installed. Only Android 6.0 items were downloaded/installed, and only the items pictured were installed:
By default, an Android Virtual Device called “Android_Accelerated_x86” was preconfigured and available for use when I installed Visual Studio for Mac and updated Xamarin. As far as I can tell, it is an AVD created using the “Google APIs Intel x86 Atom System Image” from the above screenshot, using Android 6.0.
I am able to debug to this Android_Accelerated_86 AVD, with a Xamarin project. It works fine as expected.
I now want to create an AVD using Android 7.1. What I did was in Visual Studio for Mac, I opened the xamarin SDK Manager, and downloaded the following items (checked in the picture):
You can see I downloaded the similarly-named “Google APIs x86 Atom System Image” for Android 7.1, as was preinstalled automatically with Visual Studio for Mac for Android 6.0.
In theory, I would think this should be all I need to be able to create a new virtual device. In visual studioI go to Tools > Google Emulator Manager, and I click "Create..." to try and create a virtual device. For Device, I've tried picking Nexus 10, Nexus 9, Nexus One, 10.1" WXGA Tablet, etc. No matter what Device I pick, if I pick a Target of Android 7.0. 7.1, or 8.0, the CPU/ABI section says "no system images installed for this target". Also, if I pick a target of “Android 6.0 – API Level 23”, it says that “no system images installed for this target”, just like it did for Android 7.0 and higher.
The ONLY way I can create a new virtual device is by picking a Target of “Google APIs (Google Inc.) - API Level 23”, and then it will let me choose “Google APIs Intel Atom (x86)”, and I assume this is because I have the “Google APIs Intel x86 Atom Image” installed from the Android 6.0 section. But I have that corresponding image installed for the Android 7.1 version as well, so why can’t I at the very least pick a target of Android 7.1 and also be given a CPU/ABI choice of “Google APIs Intel x86 Atom image”? I have the same image type as is installed for Android 6.0!
I've tried this on two different machines, with the exact same results. I've also tried downloading appropriate images for Android 7.0 and 8.0, and am still having the same problem - I can't create Android AVDs past Android version 6.0. Has anyone successfully used the SDK Manager and Google Emulator Manager to configure an AVD with Android 7.0 or later? All existing discussions about this type of problem that I can find only show Android 6.0 or earlier. I also tested this with the most recent version of Visual Studio for Mac, and have fully updated all my Xamarin components via the stable auto-update channels.
Solution
Visual Studio for Mac
(VS4M
) uses the Android Emulator Manager within Android SDK Tools version 25. That version from Google does not support later Android Virtual Devices AVD APIs.
If you upgrade your Android tools version to the latest version (currently 27.01
), you will receive this message when trying to open the Google Emulator Manager from the VS4M's Tool menu:
As it states, the latest version of the Google Android tools has removed the standalone GUI for creating AVDs.
So you can create them via the cmd-line using avdmanager
which is located within your Android SDK (android-sdk-macosx/tools/bin
).
❯ ./avdmanager
Usage:
avdmanager [global options] [action] [action options]
Global options:
-s --silent : Silent mode, shows errors only.
-v --verbose : Verbose mode, shows errors, warnings and all messages.
--clear-cache: Clear the SDK Manager repository manifest cache.
-h --help : Help on a specific command.
Valid actions are composed of a verb and an optional direct object:
- list : Lists existing targets or virtual devices.
- list avd : Lists existing Android Virtual Devices.
- list target : Lists existing targets.
- list device : Lists existing devices.
- create avd : Creates a new Android Virtual Device.
- move avd : Moves or renames an Android Virtual Device.
- delete avd : Deletes an Android Virtual Device.
Personally I use the one that replaced it and that is within the Android Studio (Tools
/ Android
/ AVD Manager
):
To use this one does mean that you need to download the full Android Studio dmg but I already use it for writing/compiling Java libraries for Xamarin.Android binding libraries, access to Android Instant Apps tools, etc... Also its Android SDK Platform and Tools manager is "better" than Xamarin's (IMHO/Its a personal preference thing...).
Answered By - SushiHangover
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.