f-miyu / Plugin.CloudFirestore

MIT License
121 stars 44 forks source link

Mono.Linker.MarkException Build error upon compiling (Release) #69

Closed akuteru closed 3 years ago

akuteru commented 3 years ago

Hello. I am getting this error when I am building for relase

Mono.Linker.MarkException: Error processing method: 'System.Void Plugin.CloudFirestore.FirestoreSettings::.cctor()' in assembly: 'Plugin.CloudFirestore.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Boolean Firebase.Firestore.FirebaseFirestoreSettings::AreTimestampsInSnapshotsEnabled() at Mono.Linker.Steps.MarkStep.HandleUnresolvedMethod(MethodReference reference) at Mono.Linker.Steps.MarkStep.MarkMethod(MethodReference reference) at Mono.Linker.Steps.MarkStep.MarkInstruction(Instruction instruction) at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body) at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method) at Mono.Linker.Steps.MarkStep.ProcessQueue() --- End of inner exception stack trace --- at Mono.Linker.Steps.MarkStep.ProcessQueue() at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue() at Mono.Linker.Steps.MarkStep.Process() at Mono.Linker.Steps.MarkStep.Process(LinkContext context) at MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context) at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step) at Mono.Linker.Pipeline.Process(LinkContext context) at MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context) at Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res) at Xamarin.Android.Tasks.LinkAssemblies.RunTask() at Xamarin.Android.Tasks.AndroidTask.Execute() EMRA.Android

For now, I turned off my Linking in Android options which I know isnt the best practice.

Can someone help me address this issue? I've searched everywhere and cant seem to find an answer.

f-miyu commented 3 years ago

Do you use Xamarin.Firebase.Firestore 122.0.0 or later version in your project? If so, please remove it.

akuteru commented 3 years ago

I tried it out and I am getting this error. "java.exe" exited with code 1. And this is the error on the Output C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.D8.targets(51,5): error MSB6006: "java.exe" exited with code 1.

f-miyu commented 3 years ago

Maybe if you enable Multi-Dex, it may work.

akuteru commented 3 years ago

I am building it with Multi-Dex D8. I cant seem to figure out what's the problem.

akuteru commented 3 years ago

Anyone can help?

f-miyu commented 3 years ago

May I see your project file, please? I want to see referenced packages in your project.

akuteru commented 3 years ago

`<?xml version="1.0" encoding="utf-8"?>

False Debug AnyCPU 8.0.30703 2.0 {9ABC138B-E1A3-40BB-A088-A0AD79763A39} {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Library Properties EMRA.Droid EMRA.Android 512 v10.0 True true Off Resource Properties\AndroidManifest.xml Resources Assets true full false bin\Debug DEBUG; prompt 4 SdkOnly true d8 true false false false false true true true 1G false pdbonly true bin\Release prompt 4 true false d8 false true false false false false apk false true None 1.0.7 4.0.4 1.0.3 2.0.1 4.1.0 2.2.1 3.3.10 2.1.12 18.3.0.50 18.3.0.50 1.1.1.3 1.1.1.3 1.1.1.3 28.0.0.3 28.0.0.3 28.0.0.3 28.0.0.3 28.0.0.3 28.0.0.3 28.0.0.3 28.0.0.3 28.0.0.3 4.0.8 2.2.29 1.3.0 8.0.22 12.0.3 2.80.2 1.7.335 18.3.0.50 18.3.0.50 18.3.0.50 18.3.0.50 18.3.0.50 18.3.0.50 18.3.0.50 18.3.0.50 28.0.0.3 1.7.0 1.6.0 1.6.0 2.4.11.982 120.0.1 119.5.0 122.0.1 121.0.1 121.0.1 5.0.0.1874 1.0.0-preview2 3.3.0 2.2.0 2.1.0.714 2.2.1 2.27.0 27.1.0.1 1.0.0.2 117.5.0 116.0.0 117.0.0 3.14.0 1.7.7 2.4.1 2.4.1 {A682884C-CB44-4A89-B752-27BB634E0ABE} EMRA `
akuteru commented 3 years ago

That's my project file.

akuteru commented 3 years ago

Can anyone help?

angelru commented 3 years ago

do you have everything updated to the latest version? I just built in release mode. I think I see too many references to firebase in your csproj

akuteru commented 3 years ago

I checked my reference i only have 2. The Firebase.Firestore and this Plugin. i tried removing the Firebase.Firestore and get the java.exe error

akuteru commented 3 years ago

do you have everything updated to the latest version? I just built in release mode. I think I see too many references to firebase in your csproj

and yes i have updated everything to the latest version. I am really lost on what seems to be the problem when building release

angelru commented 3 years ago

I was referring to firebase packages, this is my android csproj:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>portable</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release</OutputPath>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <AndroidManagedSymbols>true</AndroidManagedSymbols>
    <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
    <AotAssemblies>false</AotAssemblies>
    <EnableLLVM>false</EnableLLVM>
    <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
    <BundleAssemblies>false</BundleAssemblies>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidCreatePackagePerAbi>false</AndroidCreatePackagePerAbi>
    <AndroidDexTool>d8</AndroidDexTool>
    <AndroidLinkTool>r8</AndroidLinkTool>
    <AndroidPackageFormat>aab</AndroidPackageFormat>
    <AndroidUseAapt2>true</AndroidUseAapt2>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="Mono.Android" />
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="AiForms.Dialogs">
      <Version>1.0.10</Version>
    </PackageReference>
    <PackageReference Include="Plugin.CloudFirestore">
      <Version>4.1.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.FirebaseAuth">
      <Version>4.1.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.FirebasePushNotification">
      <Version>3.3.10</Version>
    </PackageReference>
    <PackageReference Include="Plugin.FirebaseStorage">
      <Version>4.1.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.GoogleClient">
      <Version>2.1.12</Version>
    </PackageReference>
    <PackageReference Include="Plugin.LocalNotification">
      <Version>5.2.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.Permissions">
      <Version>6.0.1</Version>
    </PackageReference>
    <PackageReference Include="Sharpnado.MaterialFrame">
      <Version>1.1.3</Version>
    </PackageReference>
    <PackageReference Include="Sharpnado.Shadows">
      <Version>1.2.0</Version>
    </PackageReference>
    <PackageReference Include="Sharpnado.Tabs">
      <Version>2.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugin.Media">
      <Version>5.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.AndroidX.CardView">
      <Version>1.0.0.6</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.CommunityToolkit">
      <Version>1.0.2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading.Forms">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading.Transformations">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms" Version="5.0.0.1931" />
    <PackageReference Include="Xamarin.Essentials" Version="1.6.1" />
    <PackageReference Include="Xamarin.Forms.Maps">
      <Version>5.0.0.1931</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.AndroidX.Migration" Version="1.0.8" />
  </ItemGroup>
akuteru commented 3 years ago
<ItemGroup>
    <Reference Include="Mono.Android" />
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="DLToolkit.Forms.Controls.ImageCropView">
      <Version>1.0.7</Version>
    </PackageReference>
    <PackageReference Include="FirebaseDatabase.net">
      <Version>4.0.4</Version>
    </PackageReference>
    <PackageReference Include="FirebaseStorage.net">
      <Version>1.0.3</Version>
    </PackageReference>
    <PackageReference Include="FormsToolkit">
      <Version>2.0.1</Version>
    </PackageReference>
    <PackageReference Include="Plugin.CloudFirestore">
      <Version>4.1.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.FacebookClient">
      <Version>2.2.1</Version>
    </PackageReference>
    <PackageReference Include="Plugin.FirebasePushNotification">
      <Version>3.3.10</Version>
    </PackageReference>
    <PackageReference Include="Plugin.GoogleClient">
      <Version>2.1.12</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfComboBox">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfPicker">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Arch.Core.Common">
      <Version>1.1.1.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Arch.Lifecycle.Common">
      <Version>1.1.1.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Arch.Lifecycle.ViewModel">
      <Version>1.1.1.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Annotations">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Collections">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Compat">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Core.UI">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Core.Utils">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.CursorAdapter">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Fragment">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Interpolator">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.Loader">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.v7.AppCompat" Version="28.0.0.3" />
    <PackageReference Include="Xamarin.Android.Support.v4" Version="28.0.0.3" />
    <PackageReference Include="Com.Airbnb.Xamarin.Forms.Lottie">
      <Version>4.0.8</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.Net.Http">
      <Version>2.2.29</Version>
    </PackageReference>
    <PackageReference Include="MonkeyCache">
      <Version>1.3.0</Version>
    </PackageReference>
    <PackageReference Include="MySql.Data">
      <Version>8.0.22</Version>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json">
      <Version>12.0.3</Version>
    </PackageReference>
    <PackageReference Include="SkiaSharp">
      <Version>2.80.2</Version>
    </PackageReference>
    <PackageReference Include="sqlite-net-pcl">
      <Version>1.7.335</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.Core">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfAutoComplete">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfCalendar">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfListView">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfProgressBar">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfRangeSlider">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfRotator">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Syncfusion.Xamarin.SfTabView">
      <Version>18.3.0.50</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Android.Support.VersionedParcelable">
      <Version>28.0.0.3</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Auth">
      <Version>1.7.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.CommunityToolkit">
      <Version>1.0.2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Essentials">
      <Version>1.6.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Essentials.Interfaces">
      <Version>1.6.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.FFImageLoading">
      <Version>2.4.11.982</Version>
    </PackageReference>
    <PackageReference Include="Prism.DryIoc.Forms" Version="8.0.0.1909" />
    <PackageReference Include="Xamarin.Firebase.Auth">
      <Version>120.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Firebase.Common">
      <Version>119.5.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Firebase.Firestore">
      <Version>122.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Firebase.Iid">
      <Version>121.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Firebase.Messaging">
      <Version>121.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms">
      <Version>5.0.0.1874</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms.Extended.InfiniteScrolling">
      <Version>1.0.0-preview2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms.GoogleMaps">
      <Version>3.3.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms.GoogleMaps.Bindings">
      <Version>2.2.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms.PancakeView">
      <Version>2.1.0.714</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Google.Android.DataTransport.TransportApi">
      <Version>2.2.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Google.Dagger">
      <Version>2.27.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Google.Guava">
      <Version>27.1.0.1</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Google.Guava.ListenableFuture">
      <Version>1.0.0.2</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.GooglePlayServices.Auth">
      <Version>119.0.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.GooglePlayServices.Base">
      <Version>117.5.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.GooglePlayServices.CloudMessaging">
      <Version>116.0.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.GooglePlayServices.Maps">
      <Version>117.0.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Protobuf.JavaLite">
      <Version>3.14.0</Version>
    </PackageReference>
    <PackageReference Include="XF.Material">
      <Version>1.7.7</Version>
    </PackageReference>
    <PackageReference Include="ZXing.Net.Mobile">
      <Version>2.4.1</Version>
    </PackageReference>
    <PackageReference Include="ZXing.Net.Mobile.Forms">
      <Version>2.4.1</Version>
    </PackageReference>
  </ItemGroup>

Here is my csproj.

As far as i can see, I dont have that many firebase references I have FirebaseDatabase (realtime database) I have FirebaseStorage(firebase storage) CloudFirestore (Firestore) FirebasePushNotification (Firebase cloud messaging)

And as i have mentioned above, If i try removing the Xamarin.Firebase.Firestore. I am getting a java.exe exit code error when i try to build my project.

Tell me what must I do or clean in my references. I am really stuck on this problem.

angelru commented 3 years ago

I'm not sure, but I think it has to do with

  <PackageReference Include = "FirebaseDatabase.net">
       <Version> 4.0.4 </Version>
     </PackageReference>
     <PackageReference Include = "FirebaseStorage.net">
       <Version> 1.0.3 </Version>
     </PackageReference>

@f-miyu maybe i can lend a hand

akuteru commented 3 years ago

Thanks to angelru I managed to do it. I am now having problem with this Protobuf.Javalite but this is not related to this plugin. I removed every sdk and downloaded them one by one (referring to the packages angelru posted) and it seems to fix the problem on firestore dependencies. I must have had too many plugins.

mbilalbenli commented 2 years ago

Hi, I have the same issue. I don't understand this solution. What exactly should I do?

My Android Project Nuget Packages

 <ItemGroup>
    <PackageReference Include="CardsView">
      <Version>2.8.0</Version>
    </PackageReference>
    <PackageReference Include="Com.Airbnb.Xamarin.Forms.Lottie">
      <Version>4.0.10</Version>
    </PackageReference>
    <PackageReference Include="Com.OneSignal">
      <Version>3.10.6</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter">
      <Version>4.3.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter.Analytics">
      <Version>4.3.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter.Crashes">
      <Version>4.3.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.CloudFirestore">
      <Version>4.1.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.Firebase">
      <Version>1.0.8</Version>
    </PackageReference>
    <PackageReference Include="Plugin.FirebaseAuth">
      <Version>4.1.0</Version>
    </PackageReference>
    <PackageReference Include="Plugin.InAppBilling">
      <Version>4.0.2</Version>
    </PackageReference>
    <PackageReference Include="Resizetizer.NT">
      <Version>0.2.0</Version>
    </PackageReference>
    <PackageReference Include="Rg.Plugins.Popup">
      <Version>2.0.0.12</Version>
    </PackageReference>
    <PackageReference Include="Xam.Plugin.SimpleAudioPlayer">
      <Version>1.4.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.CommunityToolkit">
      <Version>1.2.0</Version>
    </PackageReference>
    <PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
    <PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
    <PackageReference Include="Xamarin.Forms.PancakeView">
      <Version>2.3.0.759</Version>
    </PackageReference>
  </ItemGroup>