问题
Using VS2015/Windows 10, I created a Blank App (Portable) and set the startup project to Droid. I had only one emulator by default, so I created a Galaxy Nexus/API 23/Intel Atom x86 using the AVD with HAXM.
I can't get this blank project to run on either emulator. When I hit debug, it goes through the motions and starts the emulator but nothing happens. If I run any project beyond the first time after I created a project I get the following error:
System.MissingMethodException: Method 'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found.
http://imgur.com/a/hZNUQ
Frame not in module http://imgur.com/a/KtsRD
This is what I have installed: http://imgur.com/a/iL7Wt
I have installed all the latest updates, the SDK's etc. I would simply like to get started and emulate a HelloWorld app.
UPDATE: still have the issues, here is some more information to track issue. Microsoft Visual Studio Professional 2015 Version 14.0.25431.01 Update 3 Microsoft .NET Framework Version 4.6.01586
Microsoft .NET Core Tools (Preview 2) 14.1.21111.0 Microsoft .NET Core Tools (Preview 2)
Xamarin 4.2.1.64 (872717c) Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin Inspector Support 1.0.0.0 (1f3067d) Adds support for inspecting Xamarin and WPF apps.
Xamarin.Android 7.0.2.37 (ce955cc) Visual Studio extension to enable development for Xamarin.Android.
Xamarin.iOS 10.2.1.5 (44931ae) Visual Studio extension to enable development for Xamarin.iOS.
Installed Android SDKS: Android SDK Tools 25.2.3 Android SDK Platform-tools 25.0.1 Android SDK Build-tools 23.0.2, 23.0.1, 22.0.1, 21.1.2 , 19.1
Android 7.1.1 (API 25) - SDK Platform, Google API's Intel x86 ATOM Android 7.0 (API 24) - SDK Platform, Google API's Intel x86 ATOM Android 6.0 (API 23) - SDK Platform, Google API's Intel x86 ATOM Android 5.1.1 (API 22) - SDK Platform, Google API's Intel x86 ATOM Android 5.0.1 (API 21) - SDK Platform, Google API's Intel x86 ATOM Android 4.4.1 (API 19) - SDK Platform, Google API's Intel x86 ATOM
http://imgur.com/a/vZZmf
Reproduction steps 1) Create a new Blank PCL project, targetted .NET Framework 4.5 2) Right off the bat I have the following 4 Warning messages
Warning IDE0006 Error encountered while loading the project. Some project features, such as full solution analysis for the failed project and projects that depend on it, have been disabled. App5.Droid 1 Active
Warning The "ResolveLibraryProjectImports" task failed unexpectedly. System.IO.FileNotFoundException: Could not load assembly 'App5, Version=, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile? File name: 'App5.dll' at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters) at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName) at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName) at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(ICollection
1 jars, ICollection1 resolvedResourceDirectories, ICollection1 resolvedAssetDirectories, ICollection1 resolvedEnvironments) at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() App5.DroidWarning Type universe cannot resolve assembly: System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. App5.UWP
Warning Cannot resolve Assembly or Windows Metadata file 'System.Runtime.dll' App5.UWP D:\Visual Studio 2015\Projects\App5\App5\App5.UWP\App5.UWP.csproj
http://imgur.com/a/EwIQY
3) Right click on the Droid project - properties Compile using: Use Latest Platform (Android 7.0 Nougat) Min Android: Android 4.0.3 (API level 15 - Ice Cream Sandwich) Target Android version: Use compile SDK version
http://imgur.com/a/yZyAv
4) Set startup project as Droid, RUN using AVD_GalaxyNexus_ToolsForApacheCordova (Android 4.4 - API 19)
5) Pop-up message: Running an x86 based Android Virtual Device is 10x faster. We strongly recommend creating a new AVD. Clicked OK
6) Android Emulator Starts. VS15 message bar: 'Deploying AVD' for a long time....then 'Ready' orange bar. Few more minutes and new pop-up opens: 'Find Source: NavigationPageRenderer.cs' ...not sure where this file is/what this file is supposed to be.
http://imgur.com/a/DVYjJ
7) When I click cancel, I get the error message:
System.MissingMethodException: Method 'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found.
http://imgur.com/a/KGvEG
Reproduced same issue on multiple machines
回答1:
Update: So I just reproduced your issue and I am sorry that you and other ran into this. It looks like there was an issue in the templates and I am working with the team to quickly resolve this.
To fix:
- Simply right click on the android project and select "Manage Nuget Packages"
- Go to Updates
- Find Xamarin.Android.Support.v7.AppCompat
- Select version 23.3.0 from the version picker and hit Install
- You additionally will need to install the RecyclerView 23.3.0 NuGet Package. Go to Browse and search for: Xamarin.Android.Support.v7.RecyclerView and make sure to pick 23.3.0 to install for the correct version
- Now do a full clean/rebuild and it should work
This should install the correct versions of everything you need for Android
So, it looks like you are attempting to create a Blank Xamarin.Forms application, not a traditional Xamarin application.
My first recommendation is to try to just create a blank Android application with Xamarin. This will have very little dependencies and you can see if it starts to deploy out of the box.
Looking at your Installed Android SDKs, I would recommend Uninstalling anything Under Android 7.1.1 (API 25) as it is not supported yet and may be causing issues downloading NuGet packages.
Here is what mine looks like as of today:
Looking at your Warnings I think it will go away once you uninstall API 25, not sure why that is getting installed unless you maybe already installed Android Studio?
Also, if you are targting API 24+ you'll have to install the Java JDK 1.8. I would suggest removing 1.7 unless you need to use previous versions. The release notes for Xamarin.Android 7.0 have more information as well: https://developer.xamarin.com/releases/android/xamarin.android_7/xamarin.android_7.0/
Note: Xamarin.Android 7.0 requires JDK 1.8 to use the Android Nougat (API 24) APIs. You can continue to use earlier versions of the JDK if targeting earlier Android API levels:
JDK 1.8 - up to API 24+ JDK 1.7 - up to API 23 JDK 1.6 - up to API 20 Additionally, a 64-bit version of the JDK is required to use custom controls in the Android designer.
I wrote a big blog on setup here: http://motzcod.es/post/150380059392/preparing-machines-for-xamarin-cycle if things aren't configure properly.
Try to do a New project at this point and it will re-download all the NuGets and such properly.
As for System.ObjectModel warning, you can remove it from the References and it shouldn't be needed.
来源:https://stackoverflow.com/questions/40935404/debug-emulator-getting-started-with-android-using-xamarin