I have a Xamarin.Forms PCL Project (both iOS and Android). I can build it perfectly in my local repo. However, if I clone or download the same up-to-date code from Github, I got the error "InitializeComponent does not exist in the current context"
My setup is:
Xamarin.Forms PCL Project
Xamarin.Forms 1.5.0.6446
Xamarin Studio 5.9.7 (build 9)
Mac OS X
My gitignore file: https://gist.github.com/NamXH/00690ea72a426d9f0383
I am aware that there are some known bugs with "InitializeComponent does not exist" in a Shared Project or Visual Studio. However, I think mine is different.
There's another weird situation: If I update Xamarin.Forms packages to a newer version, the project can be built normally. However, if I discard all the changes (by checking out the commit before updating), I got the InitializeComponent error. When I checkout the latest commit (with the new packages changes), it can be built again. Everything is done locally in this situation.
Thanks for your help!
I have solved the problem. The issue is I use Github client for Mac and for some reasons the client does not detect all the changes in the packages folder. I have to use the git add command in the console to add the missing files (mostly dll files).
In short, every time I update packages, I have to use git commands in the console to add new changes.
Related
I'm building a new Xamarin Forms 5 app using VS 2022 17.1.1. Everything in the project appears to be up-to-date.
I've been working on this project for a while and never had this issue. All of a sudden it just appeared today. The last action I took was to install the Plugin.InAppBilling package, thought the package in question is not used by the Plugin.InAppBilling package.
The error is as follows:
All I can see is that the shared project is using System.Numerics.Vectors version 4.5.0 and it seems to be dependency of Xamarin.Essentials which is version 1.7.1 in my project.
However, the version number of System.Numerics.Vectors seems to be 2.0.5.0 in the Android and iOS projects.
I found the GitHub issue here but I'm not seeing any clear resolution to this issue. Even though it appears to be a warning, in my case, I can no longer run the app because I keep getting deployment error to the Android Emulator or actual device. It simply refuses to deploy my app to the device/emulator. So, it's really NOT a warning in my case. It's a show-stopper. I'm a bit surprised about how lightly the Xamarin Essentials folks seem to have taken this issue on GitHub.
Has anyone actually resolved this issue? If so, what's the solution?
BTW, in my case both the Android and the iOS projects are throwing this error/warning and both use System.Numberics.Vectors version 2.0.5.0 even though the shared project has version 4.5.0 installed as a dependency undre Xamarin Esssentials.
I'd appreciate some pointers on how to make this issue disappear. Thanks.
At first, you can try to update the Xamarin.Essentials package in the Android and IOS project with the nuget package manager to the version 1.7.1.
And then, if the error is still here, you can right click the reference and remove the reference of the System.Numberics.Vectors 2.0.5.0 both in your Android and IOS project. Then download the System.Numberics.Vectors 4.5.0 in the nuget package manager both too.
I just updated to MacOS Catalina because a Xamarin project needed the latest XCode. Everything was working before this update.
I am now unable to push to or pull from AzureDevops ({domain}.visualstuido.com), though I can clone a project from it without any problems.
When attempting to push or pull (even a project just cloned) I get the Microsoft sign-in dialog but it's blank (see image below).
I have tried rebooting (several times), restarting Visual Studio, applied all updates, (VS, MacOS, Java etc) but nothing is making any difference. Despite Googling this for several hours I can't any cause/resolution.
I'm looking for help on how to diagnose the cause and of course fix the problem.
I am building a Xamarin Forms solution (containing an iOS library, an Android library and a .NET Standard library) in TeamCity.
I have just upgraded to Xamarin Forms 3.1.0.583944. The project builds without any problem locally, but on my TeamCity build server (Windows Server 2016), I'm consistently getting the following error:
C:\BuildAgent\work\f12265fda07473c1\src\packages\Xamarin.Forms.3.1.0.583944\build\netstandard2.0\Xamarin.Forms.targets(44,
3): error XF002: Xamarin.Forms tasks do not match targets. Please
ensure that all projects reference the same version of Xamarin.Forms,
and if the error persists, please restart the IDE.
I have tried downgrading Xamarin Forms, and rebooting the build agent. Neither of these has succeeded.
UPDATE: There is a new error:
C:\BuildAgent\temp\buildTmp.nuget\packages\xamarin.forms\3.0.0.561731\build\netstandard2.0\Xamarin.Forms.targets(44, 3): error XF002: Xamarin.Forms tasks do not match targets. Please ensure that all projects reference the same version of Xamarin.Forms, and if the error persists, please restart the IDE.
For some reason, the agent is looking for Version 3.0.0.561731. But that is no longer anywhere in the project. I had deleted the entire C:\BuildAgent\temp\buildTmp\.nuget\packages\xamarin.forms\3.0.0.561731 folder, but it has come back.
ADDENDUM: I notice that every time I upgrade Xamarin.Forms to this version via NuGet, it fails to uninstall the old package, and I have to restart Visual Studio to complete the process. This happens without fail. I am fairly sure this is connected to the breaking build, but that is more due to speculation and experience than concrete analysis.
I found out how to fix the problem, but it's not clear to me why it would manifest in the way it has -- locally and even when I RDP onto the build agent, it builds without trouble, but when I run the build agent from the TeamCity console I hit these compilation errors.
One of my dependencies is a NuGet package, which itself has a dependency on Xamarin Forms. Fortunately, I own that NuGet package, and was able to upgrade its Xamarin Forms version to the latest available package. If I didn't own that package I would be completely stuck though -- so this is only a partial solution.
The above answer was quite helpful for me . I would like to add a couple of additional notes though. I was facing this issue when I was using Xamarin Forms 3+ and my local build was being really inconsistent with the same error "Xamarin.Forms tasks do not match targets. Please ensure that all projects reference the same version of Xamarin.Forms, and if the error persists, please restart the IDE.". Then I cleared my local NuGet cache and rebuilt the project and saw that there were other NuGet package versions being pulled for Xamarin Forms when I did a NuGet restore. I then reversed the ordering of the NuGet packages starting with Xamarin Forms and it all worked fine.
I am developing a Xamarin Forms (PCL) application for IOS and Android Platform.
My Xamarin Studio version is 5.5.4 (Build 15). I am on stable channel.
My Xamarin Forms dll version is 1.3.0.6292.
I have also added a Xamarin Forms Labs reference from NuGet, v1.2.0.
Since yesterday, whenever i am building the solution, i get following error:
error : Error initializing task XamlG: Not registered task XamlG.
Any possible resolution for this error? I have tried clean and build multiple time. Even deleted the entire source code and redownloaded everything from source control but same error.
This error can occur if you have upgraded from an older version of Xamarin.Forms to a newer version. The underlying problem is that the wrong Xamarin.Forms.Build.Tasks.dll is being loaded compared with the one that the custo MSBuild Xamarin.Forms.targets file is expecting.
There is a bug in Xamarin Studio where the old build Xamarin.Forms build tasks are still used after the NuGet package has been upgraded. You can workaround this by closing and re-opening the solution.
However you say you have deleted the source code and downloaded everything again so it sounds like you have a different problem. It may be that your project is trying to use two different versions of Xamarin.Forms at the same time. I would look at your project files (.csproj) in a text editor and make sure they are all using one version of Xamarin.Forms. Check that they are all referencing a single version of Xamarin.Forms.targets and it is the same version.
This is silly.
I just recloned the project in a new fresh folder and build it from scratch and it worked. The more i am using Xamarin Forms, the more buggy and unbaked it seems. There are random issues which get fixed just by rebuilding the project. Or like Matt pointed in his answer below, by just restarting the studio. In my programming experience with different IDEs and platforms, only Xamarin seems to have these problems regularly.
I'm working with Android Studio (Beta) 0.8.14.
I wanted to update the Gradle distribution and the Gradle plugin in my project, so I started manually changing the lines:
classpath 'com.android.tools.build:gradle:0.13.+' (in build.gradle)
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip (in gradle-wrapper.properties)
by upgrading to, respectively, 1.0.0 and 2.2.1. Then I tried to use different combinations found here on SO, e.g. 0.14.4 and 2.2, as none of these seemed to work. For each combination I got (after syncing and downloading what needed) some error, like:
AssertionError: null
AssertionError: com.android.tools.idea.gradle.project.AndroidGradleProjectComponent#71c8dfe3
UnsupportedMethodException
Unsupported method: SourceProvider.getJniDirectories().
The version of Gradle you connect to does not support that method.
After some research I thought this might be related to AS itself. Looking for updates in different channels brings me either to AS 0.9.9
This patch will allow you to update from 0.x to 1.x. After updating,
please check for updates again to install 1.x.
or to AS 1.0.2.
When trying to update, I get hundreds of errors related to Android Studio not deleting some files in android_SDK_folder/sources/android-21 , mainly.
This issue has some references here on SO. Known fixes are killing java processes during the update, which was unsuccessful for me, and launching Android Studio as admin, which doesn't look like a great idea to me (and I wouldn't know how to on OS X).
I'm stuck. My questions are:
are the Gradle syncing errors due to my old build of Android Studio?
if so, what can I do to update? I don't think I should uninstall and then get 1.0.2, as the message I reported says I can patch to 0.9.9 and then to 1.x. Is this the only thing to do?
Yes, your Gradle syncing errors are due to a mismatch between the plugin and the version of Android Studio. If you want to use v1.0.0 of the plugin, you need to be running Android Studio 1.0 or later.
As for upgrading, my advice would be to do a clean reinstall of 1.0; it will be easier than trying to spend a lot of time figuring out why the upgrade isn't working. I forget where the SDK is installed in 0.8.14, but we're encouraging/requiring users to have the SDK located outside the application directory itself, so it should help avoid future SDK woes with upgrading/reinstalling Android Studio itself.
If the SDK is currently installed inside Android Studio's directory and you don't want to re-download it, you could move it out to a more sensible place before reinstalling, and point the new installation at it.