Android Studio app.gradle error in appcompat - gradle

Dependencies using groupId com.android.support and androidx.* can not be combined but found
IdeMavenCoordinates{myGroupId='com.android.support',
myArtifactId='support-vector-drawable', myVersion='26.1.0',
myPacking='aar', myClassifier='null'}and
IdeMavenCoordinates{myGroupId='androidx.asynclayoutinflater',
myArtifactId='asynclayoutinflater', myVersion='1.0.0',
myPacking='aar', myClassifier='null'}
incompatible dependencies

There seems to be a conflict between the deprecated appcompat library and Firebase
Solved the same issue by migrating the old and deprecated appcompat support library to the new androidx. Official docs here: https://developer.android.com/jetpack/androidx/migrate

I've faced the same error for a few days and only achieve success after migrating all project to SDK 28.
Update all project dependencies
File -> Project Structure
With Android Studio 3.2 and higher, go to menu Refactor -> Migrate to
AndroidX
It's worth mentioning without Migrating to AndroidX, the Gradle has been synced successfully, but when running the project I've got this error
Manifest merger failed: Attribute application#appComponentFactory...

Related

Found conflicts between different versions of "System.Numerics.Vectors" in Xamarin Forms 5 project

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.

How to migrate to Android Aar Library

How do you migrate from XamarinBuildDownloadRestoreAssemblyAar to XamarinBuildDownloadAndroidAarLibrary? I am not able to build my Xamarin Android app and this warning is being given:
"XamarinBuildDownloadRestoreAssemblyAar is no longer supported. If your build is failing, revert to an older Xamarin.Build.Download version, or migrate your packages to use the new XamarinBuildDownloadAndroidAarLibrary ItemGroup. If your build is succeeding it is safe to ignore this warning."
I haven't found the documentation to do so.

failed to resolve ObjCRuntime.TrampolineBlockBase

I am implementing google Admob in my Xamarin.Forms application. My android project is working perfectly but my iOS project fails to build. when I build the project it shows
Failed to resolve "ObjCRuntime.TrampolineBlockBase" reference from "Xamarin.iOS, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065"
and it also say I am missing few files.
I tried to download the mobile sdk framework for ios from https://developers.google.com/admob/ios/quick-start#cocoapods and then add to the project but I can't seem to add this framework to references.
Any kind of help is really helpful.
I had this issue on App Center. Resolved by upgrading SDK and Xcode versions in build configuration options
I was able to resolve the issue from upgrading the visual studio 2019 to 16.4.5 and downgrading the Xamarin.Firebase.iOS.AdMob from 7.47.0.1 to 7.27.0.3
After doing that I restarted Visual Studio and build the project it successfully built.
Also, I referred to this link for help
Edit:
In short, Visual studio installed the new appropriate mono framework for ios which basically solved the issue here.
In case anyone else runs into this issue, I got this issue after adding the Maps sdk to iOS. I had to upgrade Xamarin.iOS from 13.6.0.12 to 13.10.0.21 to resolve the issue.

Using EF7 SQLite on Android 7+

In my project, I am using the Microsoft.EntityFrameworkCore.SQLite package from NuGet. But for Android 7+, the app crashes with unauthorized access to "/system/lib64/libsqlite.so".
This is because Android 7 doesn't allow native libraries other than the ones in their NDK (as far as I understood). Also see this issue: https://github.com/aspnet/EntityFramework/issues/7777.
So, I researched the internet for about 2 days now and unsuccessfully tried a bunch of things to get EFCore to work on Android 7. One of them was to update to the preview version v2.0.0-preview1-final. But this resulted in other problems like the following where the app compiled, but crashed while deploying/starting on the emulator:
06-21 09:58:18.970 D/Mono ( 3632): Assembly Loader probing location: 'System.Runtime.CompilerServices.Unsafe'.
06-21 09:58:18.970 F/monodroid-assembly( 3632): Could not load assembly 'System.Runtime.CompilerServices.Unsafe' during startup registration.
06-21 09:58:18.970 F/monodroid-assembly( 3632): This might be due to an invalid debug installation.
I then tried to add the 'System.Runtime.CompilerServices.Unsafe' NuGet package manually to my project, but it didnt fix the problem.
I messed around a lot, trying different build parameters and such and actually got the app running with the preview package of EFCore on an Android 7 emulator. However, after a project clean and rebuild, the error showed up again.
Any help on how to get EFCore Sqlite to work on Android 7?
I am using Visual Studio 2017 with Xamarin.Android 7.3.1.2
I created an example project in order to reproduce the issue: https://github.com/tipa/EFCoreSample - Basically just started with the basic Android template from VS and added the Nuget package
I know this was asked more than two months ago and you've probably found the solution, but I've wanted to post how we've managed to get around this issue.
We are developing a Xamarin.Forms application with EntityFrameworkCore and SQLite. Due to project and company policies, we are restricted to using .NetStandard 1.6 (we migrated our PCL projects from .NetFramework to .NetStandard in order to integrate EntityFrameworkCore).
After this issue started happening to us, we managed to fix this by doing the following:
Updating "Microsoft.EntityFrameworkCore" and "Microsoft.EntityFrameworkCore.SQLite" from version "1.1.1" to "2.0.0-preview1-final" (this is the latest version that works with .NetStandard 1.6) in the DAL project (we have a separate PCL project that contains the Context, UoW, Repositories and Models)
Updating just "Microsoft.Data.Sqlite" (this automatically updates the needed dependencies) from version "1.1.1" to "2.0.0-preview1-final" in the main Xamarin.Forms Android project
EntityFrameworkCore versions 2.x.x use the Android 7+ "approved" way of accessing the "libsqlite.so" file, while versions 1.x.x do not.
Hope this is of help to anyone who might use similar packages that we had.
I had the same issue and I found a solution to this problem.
I'm using Xamarin.Forms applications with .Net Standard 2.0 libs and using EFCore with SQLite. All you have to do is edit your Android csproj and add this after the last PropertyGroup tag:
<PropertyGroup>
<NoWarn>$(NoWarn);NU1605</NoWarn>
</PropertyGroup>
And then add the reference for System.Runtime.CompilerServices.Unsafe in csproj:
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.3.0" />
Clean and Rebuild your Android Project.
I found the answer to the problem here: https://developercommunity.visualstudio.com/content/problem/152947/xamarin-android-run-error-could-not-load-assembly.html

Can't upgrade Xamarin.Forms NuGet package for Android project

When I am trying to upgrade Xamarin.Forms NuGet package from 2.0-2.1 to 2.3.1.114 (latest stable at the moment) I get the following error (even with new blank projects) is there a way to fix it?
Severity Code Description Project File Line Suppression State
Error Could not install package 'Xamarin.Android.Support.v4 23.3.0'. You are trying to install this package into a project that targets 'MonoAndroid,Version=v6.0', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
0
Try this option for your project:
This error is most probably because your xamarin forms version is not compatible with Xamarin.Android.Support.v4 23.3.0 available through NuGet. Check this thread on xamarin official forum. As per this thread, 23.3 is not supported by Xamarin forms. On more possible reason is that your xamarin form version is not compatible with the latest update. You can try updating forms to latest version. In case if that doesn't work, then probably you should continue with the version you already have.

Resources