Xamarin Forms Woes

November 19, 2017

Xamarin Forms is one of those technologies that I keep meaning to play with… but then don’t. Anyway, this is the story of the day that I first did… the intention was to spend a Sunday afternoon getting a quick prototype of a Xamarin Forms app running… but instead, I encountered error after error.

In the end,all I ended up producing was this post!

The first error after creating a new app:

Xamarin 1

This gave me the impression that I might have the wrong version of Android; so off I went to install the latest JDK; from here.

Thus began a process that took hours to complete…

Android SDK

Launch Android SDK Manager and install the latest (or a later) version:

Xamarin 2

Amazingly, this did seem to fix (or at least, change) the error.

Next Error:

The next problem was a build error from the Android project:


Error: No resource found that matches the given name: attr 'colorAccent'

There’s two things that were necessary here; the first was to make sure that this package was installed:

[code lang=“poweshell”] Install-Package Crosslight.Xamarin.Android.Support.v7.AppCompat




# And now we're onto the next problem…

Suddenly, it decided there was an issue with some of the resources in the file 'Tabbar.axml':


Errors: 1>C:\Code\MyApp\MyApp.Android\Resources\layout\Tabbar.axml : error APT0000: 1: error: No resource identifier found for attribute ‘tabIndicatorColor’ in package ‘com.companyname.WizardGame’ 1>C:\Code\MyApp\MyApp.Android\Resources\layout\Tabbar.axml : error APT0000: 1: error: No resource identifier found for attribute ‘tabGravity’ in package ‘com.companyname.WizardGame’ 1>C:\Code\MyApp\MyApp.Android\Resources\layout\Tabbar.axml : error APT0000: 1: error: No resource identifier found for attribute ‘tabMode’ in package ‘com.companyname.WizardGame’




Taking inspiration from my Spectrum programming days, and having no clue what the hell was going on at this stage, I just deleted these lines… and got a different error:


error CS0012: The type ‘AppCompatActivity’ is defined in an assembly that is not referenced. You must add a reference to assembly ‘Xamarin.Android.Support.v7.AppCompat, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’.




This didn't make much sense, but while I was messing around in the Package Manager screen, I decided to update the Xamarin.Forms package; for some reason, the latest version seems to be (numerically) older that the older one:

![](images/Xamarin-3.png)

Giddy with the thrill of the update working without a new, spurious error, I updated everything!  This required VS to be restarted at least once.

![](images/Xamarin-4.png)

At this stage, the project started compiling… so before Xamarin regained its footing and thought of a new error, I added back in the code I'd removed:

```xml
    app:tabIndicatorColor="@android:color/white"
    app:tabGravity="fill"
    app:tabMode="fixed" />

Now it compiles!… But won’t deploy to Android

Xamarin was catching up with me - a new error now appeared:


1>Please select a valid device before running the application.

After a little help from a well-known search engine, I selected the emulation manager:

Xamarin 5

If you find yourself in this situation, then don’t keep clicking (despite no feedback at all, the manager does open in the background)!

Xamarin 6

Select one of the devices and start it:

Xamarin 7

And it now deploys… I didn’t get anything done, but I did manage to get Xamarin running on an Android emulator… so that’s something.



Profile picture

A blog about one man's journey through code… and some pictures of the Peak District
Twitter

© Paul Michaels 2024