Debug/Emulator getting started with Android using Xamarin - xamarin

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(ICollection1 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.Droid
Warning 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

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.

Related

Xamarin - How to update Mono.Android version to resolve dependencies?

I'm trying to install a nuget package (Xamarin.Firebase.Firestore) which requires a newer version of Xamarin.GooglePlayServices.Basement (60.1142.0, I have 42.1021.1), which in turn requires me to update the xamarin.android.support packages. When I try to update those, I get this error
"Package Xamarin.Android.Support.Design 27.0.2 is not compatible with monoandroid80 (MonoAndroid,Version=v8.0). Package Xamarin.Android.Support.Design 27.0.2 supports: monoandroid81 (MonoAndroid,Version=v8.1)"
I've tried changing my target android version to 8.1, I've also updated my SDK as well as the build tools. I'm running Visual Studio 15.6.1. As a last ditch effort, I tried deleting the Mono.Android V8.0 reference and then adding a new reference to V8.1, but whenever I do so, Visual studio just ends up adding the reference with the path pointing to V8.0, even though the reference I added was clearly pointing to V8.1.
Anyone has a clue how to resolve this issue?
tried changing my target android version to 8.1
You need to change the Target Framework that is used to compile your android application, not the Target Android version (but assumably you would set these two to the same, read the Understanding Android API Levels link below.
Visual Studio for Windows:
Visual Studio for Mac:
Target Framework – Specifies which framework to use in building your application. This API level is used at compile time by Xamarin.Android.
Minimum Android Version – Specifies the oldest Android version that you want your app to support. This API level is used at run time by Android.
Target Android Version – Specifies the version of Android that your app is intended to run on. This API level is used at run time by Android.
Understanding Android API Levels
Manifest Entries:
Visual Studio for Windows:
Visual Studio for Mac:

Android Studio for Project Tango

I have downloaded latest Android Studio 2.2.3 and I want to start with C examples for project Tango phone (Lenovo Phab 2 Pro) using C API. The phone itself says it's run Android 6.0.1, kernel 3.10.84 on device.
Google developer documentation for Tango Project suggest to install Android Studio with Android SDK 24.4.1, Platform tools 23.1 and NDK 11.0.0.
By installing latest Android Studio there is no offering to install those versions of tools. Is it possible to use whatever SDK for development (latest)?
Where do I find aforementioned versions?
What Android SDK & NDK version is required for phone which run Android 6.0.1?
I started using the Dev Kit which runs Android 4.4 KitKat and I just recently got the Phab 2 Pro this week and I didn't need to make any updates to my Android Studio SDK manager.
Since I am working only with the Tango and not with the underlying Android features, I have found no need to require 6.0 for I am not using any of the extra features.
Also go here and clone the repo and run the hello-world and see if you can get it to work on your phone, if so you are good to go!
the SDK Manager which is part of Android Studio offers you choices on levels of android builds like 4.4.2/5.1/6.0/6.1, etc. Platform tools package is a module within the SDK Manager which also has levels which are based on the android build. The NDK is a completely different package and depending on what you want to accomplish you might be able to not worry about it to start of with. install Android Studio and then setup the SDK Manager to cover what devices you want to build for. get the latest Platform tools package setup and you will be ready to code. once you start setting up your environment things will fall in place. for the most part the installer does the work. pay attention to the things needed prior to installing Android Studio. i think you need to install a jdk and set paths and variables.

Android Studio - Gradle Failure - Intel Atom x86

I need your help please,
I imported an old Project in my Android Studio. I solved actually many problems, but now there is a problem i can´s solve. My Android Studio says:
(Failed to sync Gradle project 'ChatSecureAndroid')
Error:Cause: failed to find target with hash string 'Intel Corporation:Intel Atom x86 System Image:10' in: C:\Android\sdk
Open Android SDK Manager
I allready Installed all points in Android SDK Manager (API 10).
My target SDK version is 21 - i also Installed all points in Android SDK Manager (API 21)
Someone know any way i can try? :/
Greetings and Thanks,
felix
I think you should grep all the build.gradle files under your project tree with string "compileSdkVersion" to see if you have all the SDK platforms installed with the API level they declared.

VST for Cordova only support API Level 19?

The requirements for the Visual Studio Tools for Apache Cordova specify that SDK for the API Level 19 must be installed. Do that means that apps created with it will only run on android KitKat devices? Any way to target older devices?
Please review the following article for reference:
https://msdn.microsoft.com/en-us/library/dn757054.aspx
Cordova targets a single SDK (currently 19 though a upcoming release will move this to 21). However this is just the SDK used to build - by default Cordova apps can be deployed on devices running API level 10 or higher (2.3.3). Unless you're creating a custom plugin that will use an API only available on Android 5.0, you won't be affected by the SDK used.
The Android tab on the config.xml designer allows you to set alternate values for what goes in "AndroidManifest.xml" file, but the build itself will always use SDK 19.
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
Android 4.4.x (API level 19) is required by Visual Studio to build app or create app package targeting Android platform not for running the app. You can create Cordova app targeting device running Android released before KitKat.

Could not find the Blank Android Wear Application template in Xamarin Studio

I am new to Xamarin Studio. I am trying to create an app for Android Wear using Xamarin studio. I have installed the Xamarin Studio 5.5 (upto date version) and Xamarin.Android version 4.18 (Trial Edition). I've gone through the below link before I start to set up my environment.
http://blog.xamarin.com/tips-for-your-first-android-wear-app/
As said in the blog, I have installed the latest Xamarin Studio, in which I couldn't find the template for creating a new Android Wear application in either my XamarinStudio or Visual Studio.
I have tried to download the sample given in the below link:
http://developer.xamarin.com/samples/android/Android%20Wear/
On building the samples, it gives me the dll missing errors.
for ex: I have downloaded the Eliza Chat sample from the above sample, and on running the sample I have been faced some dll missing issues. After downloading them manually from internet and refer them, I am facing the below error
"Error 1 No resource found that matches the given name: attr 'android:windowSwipeToDismiss'. C:\Users\XXX\AppData\Local\Xamarin\Android.Wearable\1.0.0\embedded.\res\values\values.xml 128 ElizaChat"
Note: I have installed the Android Wear Emulator with the help of the SDK Manager. And I have installed the Android L (API 20, L Preview) and Android 4.4 W(API20) through SDK Manager. And I have installed Android Support Repository and Android Support Library.
Do I need to install any thing else to work with Android Wear application. Any help would be appreciable.
Thanks,
Karuppasamy P

Resources