在Visual Studio 2019中升级到AndroidX后,在Xamarin.Android中的设备上部署时出错

在Visual Studio 2019中升级到AndroidX后,在Xamarin.Android中的设备上部署时出错,xamarin,xamarin.android,android-appcompat,visual-studio-2019,androidx,Xamarin,Xamarin.android,Android Appcompat,Visual Studio 2019,Androidx,我最近更新了XamarinAndroid项目以支持AndroidX。为了成功编译,我只迁移了PreferenceManager和一些必需的API/方法,如ExternalStorageDirectory,SetColorFilter 因此,很少有第三方库仍然使用旧的v4/v7支持库。也就是说,我无法开始迁移支持库 有了这个,构建工作正常。我可以部署到设备并运行应用程序。 但是,在调试模式下部署到设备时,出现以下错误: Severity Code Description Project

我最近更新了XamarinAndroid项目以支持AndroidX。为了成功编译,我只迁移了
PreferenceManager
和一些必需的API/方法,如
ExternalStorageDirectory
SetColorFilter

因此,很少有第三方库仍然使用旧的v4/v7支持库。也就是说,我无法开始迁移支持库

有了这个,构建工作正常。我可以部署到设备并运行应用程序。 但是,在调试模式下部署到设备时,出现以下错误:

Severity    Code    Description Project File    Line    Suppression State
Error       MSB4018: The "GenerateJavaStubs" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'Xamarin.Android.Support.v7.AppCompat, Version=1.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'Xamarin.Android.Support.v7.AppCompat.dll'
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference)
   at Mono.Cecil.MetadataResolver.Resolve(TypeReference type)
   at Mono.Cecil.ModuleDefinition.Resolve(TypeReference type)
   at Mono.Cecil.TypeReference.Resolve()
   at Java.Interop.Tools.Cecil.TypeDefinitionRocks.<GetTypeAndBaseTypes>d__1.MoveNext()
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at Java.Interop.Tools.Cecil.TypeDefinitionRocks.IsSubclassOf(TypeDefinition type, String typeName)
   at Java.Interop.Tools.JavaCallableWrappers.JavaTypeScanner.AddJavaTypes(List`1 javaTypes, TypeDefinition type)
   at Java.Interop.Tools.JavaCallableWrappers.JavaTypeScanner.GetJavaTypes(IEnumerable`1 assemblies, IAssemblyResolver resolver)
   at Xamarin.Android.Tasks.GenerateJavaStubs.Run(DirectoryAssemblyResolver res)
   at Xamarin.Android.Tasks.GenerateJavaStubs.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()         0   
严重性代码描述项目文件行抑制状态
错误MSB4018:“GenerateJavaSubs”任务意外失败。
System.IO.FileNotFoundException:无法加载程序集“Xamarin.Android.Support.v7.AppCompat,版本=1.0.0.0,区域性=中性,PublicKeyToken=”。也许它不存在于Mono for Android配置文件中?
文件名:“Xamarin.Android.Support.v7.AppCompat.dll”
位于Java.Interop.Tools.Cecil.directorySassemblyResolver.Resolve(AssemblyNameReference,ReaderParameters参数)
位于Java.Interop.Tools.Cecil.directorySassemblyResolver.Resolve(AssemblyNameReference)
在Mono.Cecil.MetadataResolver.Resolve(TypeReference类型)处
at Mono.Cecil.ModuleDefinition.Resolve(类型引用类型)
在Mono.Cecil.TypeReference.Resolve()处
在Java.Interop.Tools.Cecil.TypeDefinitionRocks.d_u1.MoveNext()中
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source,Func`2谓词)
位于Java.Interop.Tools.Cecil.TypeDefinitionRocks.IsubClassof(TypeDefinition类型,字符串typeName)
位于Java.Interop.Tools.JavaCallableWrappers.JavaTypeScanner.AddJavaTypes(列出'1 javaTypes,TypeDefinition类型)
位于Java.Interop.Tools.JavaCallableWrappers.JavaTypeScanner.GetJavaTypes(IEnumerable`1程序集,IAssemblyResolver解析器)
在Xamarin.Android.Tasks.GenerateJavaStubs.Run(directorySassemblyResolver)
在Xamarin.Android.Tasks.GenerateJavaStubs.Execute()上
位于Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute()
位于Microsoft.Build.BackEnd.TaskBuilder.d_u26.MoveNext()0
有人也发现了这个问题吗

同样的问题已经提出:

@vlTs,您能尝试更新Xamarin.Android.Support.v7.AppCompat并重试吗?@Cherry Bu-MSFT已将Xamarin.Android.Support.v7.AppCompat更新为28.0.0.3。这是我猜,持续和最后更新可用。我正在使用“Xamarin.AndroidX.Migration”包进行构建。它似乎不正确,请在整个解决方案中搜索
Xamarin.Android.Support.v7.AppCompat的用例。对于
AppCompat
,您不需要
Xamarin.Android.Support.v7
,因为它现在只使用
AndroidX.AppCompat.App
AndroidX.AppCompat.Widget
。也请检查此示例,并检查您的ProGuard/ShrinkerI试图删除对
Xamarin.Android.Support.v7.AppCompat
的引用,但它在第三方库中使用。不能直接删除。我保留了所有旧的支持库,如
Xamarin.AndroidX.Migration
ReadMe中所建议的那样。@vITs您解决了吗?我面临着类似的问题