gpt4 book ai didi

android - 我有一条错误消息 : "Could not resolve reference to ' System. Drawing.Color'(在程序集 'Acr.UserDialogs.Interface' 中定义“

转载 作者:行者123 更新时间:2023-12-05 00:08:36 29 4
gpt4 key购买 nike

在 Xamarin.Forms 项目中,当使用“仅 SDK 程序集”(对于“SDK 和用户程序集”相同)进行编译时,我收到一条错误消息(请参阅错误消息)

我已经将“跳过程序集链接”设置为“System;Acr;Splat”

为什么?提前谢谢你。

<强>1。错误信息:

Severity Code Description Project File Line State of suppression
Error Unexpected error in the LinkAssemblies task:
Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Could not resolve reference to 'System.Drawing.Color' (defined in assembly 'Acr.UserDialogs.Interface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null') with scope 'Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null'. When the scope is different from the defining assembly, it usually means that the type is forwarded. ---> Mono.Cecil.ResolutionException: Failed to resolve System.Drawing.Color
bei Mono.Linker.Steps.MarkStep.HandleUnresolvedType(TypeReference reference)
bei Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
bei MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
bei Mono.Linker.Steps.MarkStep.MarkGenericArguments(IGenericInstance instance)
bei Mono.Linker.Steps.MarkStep.GetOriginalType(TypeReference type)
bei Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
bei MonoDroid.Tuner.MonoDroidMarkStep.MarkType(TypeReference reference)
bei Mono.Linker.Steps.MarkStep.MarkField(FieldReference reference)
bei Mono.Linker.Steps.MarkStep.InitializeFields(TypeDefinition type)
bei Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition type)
bei Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
bei Mono.Linker.Steps.MarkStep.Initialize()
bei MonoDroid.Tuner.MonoDroidMarkStep.Process(LinkContext context)
bei Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
bei Mono.Linker.Pipeline.Process(LinkContext context)
bei MonoDroid.Tuner.Linker.Process(LinkerOptions options, ILogger logger, LinkContext& context)
bei Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
--- Ende der internen Ausnahmestapelüberwachung ---
bei Java.Interop.Tools.Diagnostics.Diagnostic.Error(Int32 code, Exception innerException, String message, Object[] args)
bei Xamarin.Android.Tasks.LinkAssemblies.Execute(DirectoryAssemblyResolver res)
bei Xamarin.Android.Tasks.LinkAssemblies.Execute()
bei Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
bei Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() mInvoice.Android

<强>2。 AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="XXXXXXXX" android:installLocation="auto" android:versionCode="75" android:versionName="5.2.2.2">
<uses-sdk android:targetSdkVersion="28" android:minSdkVersion="19" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.hardware.CAMERA" />
<uses-permission android:name="android.hardware.CAMERA.AUTOFOCUS" />
<application android:label="mInvoice" android:allowBackup="true" android:icon="@drawable/icon_30" android:theme="@style/Theme.mInvoice">
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"></meta-data>
</provider>
</application>
</manifest>

最佳答案

When the scope is different from the defining assembly, it usually means that the type is forwarded.

你有 application Linker在您的 Xamarin.Android 应用程序项目中启用,并且 Xamarin.Forms 和 Acr.UserDialogs.Interface 中的转发类型之间的版本不匹配.基本上 Acr.UserDialogs.Interface是针对您当前在项目中使用的较旧版本的 Forms 编译的,如果程序集包含 C# 扩展,这是一个非常常见的问题。

您可以尝试禁用整个应用程序的链接或仅禁用 Acr.UserDialogs.Interface 的链接部件。要仅禁用该程序集的链接,请编辑您的 Android 应用程序项目 (.csproj) 并添加以下 <AndroidLinkSkip> :

<PropertyGroup>
<AndroidLinkSkip>Acr.UserDialogs.Interface</AndroidLinkSkip>
</PropertyGroup>

引用:Xamarin Android 链接:AndroidLinkSkip

关于android - 我有一条错误消息 : "Could not resolve reference to ' System. Drawing.Color'(在程序集 'Acr.UserDialogs.Interface' 中定义“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57744675/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com