xamarin 无法解析程序集:'Java. Interop'

bfnvny8b  于 2022-12-07  发布在  Java
关注(0)|答案(7)|浏览(160)

当我尝试构建应用程序时,我得到了一个异常,即以下异常:
C:\程序文件(x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.通用.目标(681,3):错误:无法解析程序集:'Java.互操作,版本=0.1.0.0,区域性=中性,公钥标记= 84 e04 ff 9 cfb 79065'
我试着清理项目并再次构建它,还更新了Xamarin.Forms包,但仍然没有运气。
关于堆栈跟踪的一些概述:
2〉C:\程序文件(x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.通用目标(681,3):错误:无法解析程序集:“Java.互操作,版本=0.1.0.0,区域性=中性,公钥令牌= 84 e04 ff 9 cfb 79065”2〉工具/库/框架/Xamarin.iOS.框架/版本/当前/bin/mtouch执行已完成。(任务ID:153)2〉MTouch:2016-07- 05 T14:27:15.8191415+05:30 -已完成(任务ID:153)2〉输出项:(任务ID:153)2〉已完成执行任务“MTouch”--失败。(任务ID:153)
有人收到这个错误吗?我正在运行最新的Xamarin for Visual Studio。

xqk2d5yq

xqk2d5yq1#

正如在上面的评论中提到的@SushiHangover Java.Interop.dll是从Xamarin.Android和我得到一个错误的Xamarin.IOS
我在PCL中有一个Mono.Android的引用,它总是在Xamarin.IOS中引用,所以我间接地将Xamarin.Android的dll引用到Xamarin.IOS。从PCL中删除引用解决了我的问题。

deikduxw

deikduxw2#

Step-by-step instructions on how to fish this one out, as it took me some time to find where the 'Android polluted' peace of code was.

  1. Unload your Common code project

  1. Open .csproj look for something like this
<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>
  1. Delete this segment from csproj.
  2. Load the project

  1. Clean and rebuild the solution having iOS as startup Project, at this point, you will get a build error that will show which .cs file fails to build due to missing reference.
  2. Go there and move the mechanism to an Android specific project.
jgwigjjp

jgwigjjp3#

如@AkashAmin所述,PCL项目中不应出现引用的“Mono.Android”。
但是,通过添加“使用Android”,还要确保您没有在PCL项目中添加任何“Android”特定代码,如果已添加,则需要使用“依赖关系服务”删除此代码,单击here

7dl7o3gd

7dl7o3gd4#

我也遇到了同样的问题,当我从PCL项目中删除android.mono引用时,它工作得很好。
我认为这是因为我们正在iOS中构建项目,而它没有任何Android库

zy1mlcev

zy1mlcev5#

共享项目中的平台特定代码将导致iOS编译器在编译时尝试使用平台特定程序集。
在我的例子中,我在共享项目的代码中有一个引用,在"using"语句中,这导致iOS试图链接到Android特定的程序集。
从共享项目中删除代码可以成功编译项目。

1mrurvl1

1mrurvl16#

以防万一,我在VS2013(https://bugzilla.xamarin.com/show_bug.cgi?id=41627)上使用ReSharper时遇到了这个错误。
我所做的是使用变通方法将java.interop.dll程序集显式添加到我的项目中。此问题不会影响Build,因此您可以先进行部署,然后VS会将java.interop下载到应用的obj\Debug\linksrc文件夹中,您可以引用该文件夹...

yws3nbqq

yws3nbqq7#

你需要检查你的PLC项目上的Android链接。在PLC项目中Ctrl + f,让我们去找到"Android"并删除它。

相关问题