簡體   English   中英

AppCenter構建因Xamarin.Forms android項目錯誤而失敗:無法找到程序集“ Mono.Android”

[英]AppCenter build failing for Xamarin.Forms android project error: Could not locate the assembly “Mono.Android”

我可以在本地以“調試”和“發布”模式構建應用程序,但是在Appcenter上構建失敗。 當我將項目克隆到另一個本地文件夾並運行它時,一切正常,因此,僅當將其部署到Appcenter時才出現問題。 我已經關閉了Xamarin.Forms android項目的Appcenter構建設置中所有可能的設置。 在Appcenter的構建設置中,我選擇了SDK版本:Xamarin.Android 9.3(對此我有些困惑),並且將模式設置為Release(就像我的本地項目一樣)。

我最終遇到了很多錯誤,但對我來說最主要的三個錯誤是:

警告MSB3245:無法解析此引用。 無法找到程序集“ Mono.Android”。 錯誤MSB4018:“ LinkAssemblies”任務意外失敗。 錯誤MSB4018:System.IO.FileNotFoundException:無法加載程序集'[應用程序名稱] .Android錯誤MSB4018:文件名:'[應用程序名稱] .Android.dll'

我嘗試將目標android版本更改為最新版本(Pie 9.0),而不是Oreo 8.1。 我嘗試了“鏈接:僅Sdk程序集”,“ Sdk和用戶程序集”,並且都沒有(這是“鏈接器”屬性的所有可能選項)。 我曾嘗試支持armeabi-47,x86,然后嘗試添加arm64和x86_64。

<PackageReference Include="CarouselView.FormsPlugin" Version="5.2.0" />
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="2.1.1" />
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.6" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="Plugin.Permissions" Version="3.0.0.12" />
<PackageReference Include="PropertyChanged.Fody" Version="3.0.1" />
<PackageReference Include="Rg.Plugins.Popup" Version="1.1.5.188" />
<PackageReference Include="Xam.Plugin.Media" Version="4.0.1.5" />
<PackageReference Include="Xamarin.Forms" Version="4.1.0.618606" />  
<PackageReference Include="Xamarin.Essentials" Version="1.2.0" />  
<PackageReference Include="ZXing.Net.Mobile" Version="2.4.1" />  
<PackageReference Include="ZXing.Net.Mobile.Forms" Version="2.4.1" />

預期:在Appcenter中構建就像在我清理過的本地計算機上一樣。

實際:我在Appcenter日志中收到錯誤代碼:

  • 錯誤MSB4018:“ LinkAssemblies”任務意外失敗。

  • 錯誤MSB4018:System.IO.FileNotFoundException:無法加載
    程序集[應用名稱] .Android

  • 錯誤MSB4018:文件名:“ [應用名稱] .Android.dll”
  • 錯誤MSB4018:位於Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve
  • 錯誤MSB4018:在Xamarin.Android.Tasks.LinkAssemblies.Execute
  • 警告MSB3245:無法解析此引用。 無法找到程序集“ Mono.Android”。

錯誤CS0246,找不到以下類型或名稱空間的名稱:

  • 'UsesFeatureAttribute','UsesFeature','Required','Android'

我在共享項目的AssemblyInfo.cs文件中引用了特定於Android的匯編代碼。 我刪除了該代碼,並從共享項目的csproj文件中刪除了該ItemGroup(由於該代碼而生成)。 之后,在AppCenter上一切正常。

<ItemGroup>
    <Reference Include="Mono.Android">
        <HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v9.0\Mono.Android.dll</HintPath>
    </Reference>
</ItemGroup>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM