我正在使用.Net Standard在xamarin
创建一个应用程序到目前为止,我已经在我的解决方案中安装了以下Nuget包
PCL / .Net标准包
Android软件包
最低SDK级别为Android 5.1
,最高为Android Oreo 8.1
。
当我在visual studio VS2017中运行应用程序时,它会运行几秒钟并突然关闭并抛出以下错误
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: Could not load assembly 'System.Runtime.CompilerServices.Unsafe' during startup registration.
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: This might be due to an invalid debug installation.
04-06 02:45:11.182 6262-6262/com.org.sam A/monodroid-assembly: A common cause is to 'adb install' the app directly instead of doing from the IDE.
答案 0 :(得分:1)
我也有这个错误,但是当从.net标准库使用Entity Framework时。这需要很长时间才能解决!希望这对你有用。
在android项目中,将以下内容添加为XmlFile,例如(UnsafeCompilerWorkaround.xml):
<Project>
<Target Name="ReplaceRefAssemblies" AfterTargets="_ResolveAssemblies">
<ItemGroup>
<ResolvedAssembliesFixedWindows Include="@(ResolvedAssemblies->Replace('\ref\','\lib\'))" />
<ResolvedAssembliesFixedUnix Include="@(ResolvedAssemblies->Replace('/ref/','/lib/'))" />
<ResolvedAssembliesFixed Include="@(ResolvedAssembliesFixedWindows)" Condition="@(ResolvedAssembliesFixedWindows) != @(ResolvedAssemblies)" />
<ResolvedAssembliesFixed Include="@(ResolvedAssembliesFixedUnix)" Condition="@(ResolvedAssembliesFixedUnix) != @(ResolvedAssemblies)" />
<ResolvedAssemblies Remove="@(ResolvedAssemblies)" />
<ResolvedAssemblies Include="@(ResolvedAssembliesFixed)" />
</ItemGroup>
</Target>
</Project>
编辑android.csproj文件并添加以下导入
<Import Project="UnsafeCompilerWorkaround.xml"></Import>
然后清理并重建解决方案。
答案 1 :(得分:0)
这是Xamarin.Android中的已知问题。据我所知,目前唯一已知的解决方法是在packages.config
引用时使用<PackageReference>
而不是NuGet
。
它应该很快被#1356修复,希望这可以帮到你。 :)