当我尝试构建应用程序时,出现以下异常:
C:\ Program Files(x86)\ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets(681,3):错误:无法解析程序集:'Java.Interop,版本= 0.1.0.0,文化=中性, PublicKeyToken=84e04ff9cfb79065'
我尝试清理项目并再次构建它,还更新了 Xamarin.Forms 包,但仍然没有运气。
堆栈跟踪的一些概述:
2>C:\ Program Files(x86)\ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets(681,3):错误:无法解析程序集:'Java.Interop,版本= 0.1.0.0,文化=中性,PublicKeyToken = 84e04ff9cfb79065' 2> 工具 /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch 执行完成。 (任务编号:153) 2> MTouch: 2016-07-05T14:27:15.8191415+05:30 - 已完成(任务 ID:153) 2> 输出项:_NativeLibrary= (TaskId:153) 2> 完成执行任务“MTouch”——失败。 (任务ID:153)
有人收到此错误吗?我正在运行最新的 Xamarin for Visual Studio。
正如@SushiHangover 在上面的评论中提到的,
Java.Interop.dll
来自 Xamarin.Android
,我在 Xamarin.IOS
中收到错误。
我在 PCL 中有一个对
Mono.Android
的引用,它总是在 Xamarin.IOS
中引用,所以间接地我将 Xamarin.Android
的 dll 引用到 Xamarin.IOS
。从 PCL 中删除引用解决了我的问题。
关于如何解决这个问题的分步说明,因为我花了一些时间才找到“Android 污染”的和平代码在哪里。
打开.csproj寻找类似的东西
<ItemGroup>
<Reference Include="Mono.Android">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v11.0\Mono.Android.dll</HintPath>
</Reference>
从 csproj 中删除该段。
加载项目
.cs
文件由于缺少引用而无法构建。正如 @AkashAmin 提到的,PCL 项目中不应存在引用的“Mono.Android”。
但这样,还要确保您没有通过添加“using Android”在 PCL 项目中添加任何“Android”特定代码,如果这样做了,那么您需要使用“依赖服务”删除此代码,点击here
我遇到了同样的问题,当我从 pcl 项目中删除 android.mono 引用时,它工作得很好。
我认为发生这种情况是因为我们正在 ios 中构建项目,并且它没有任何 android 库
共享项目中的平台特定代码将导致 iOS 编译器在编译时尝试使用平台特定程序集。
就我而言,我的共享项目代码中的“using”语句中有一个引用,这导致 iOS 尝试链接到 Android 特定的程序集。
从共享项目中删除代码可以成功编译项目。
以防万一,我在 VS2013 上使用 ReSharper 时遇到了此错误 (https://bugzilla.xamarin.com/show_bug.cgi?id=41627)。
我所做的是使用解决方法将 java.interop.dll 程序集显式添加到我的项目中。这个问题不会影响Build,所以你可以先部署,VS会下载java.interop到你应用程序的obj\Debug\linksrc文件夹中,你可以参考...
您需要在 Android 链接上检查您的 PLC 项目。在PLC项目中ctrl+f,让我们找到“Android”并将其删除。
我尝试了上述方法,但没有成功解决这个问题。 我按照以下步骤修复: