【问题标题】:System.ObjectModel Warning Xamarin does not run on AndroidSystem.ObjectModel 警告 Xamarin 无法在 Android 上运行
【发布时间】:2016-11-11 05:45:52
【问题描述】:

我们在 Windows 8.1 环境中使用最新的 Xamarin 在 Visual Studio Enterprise 上运行“欢迎使用 Xamarin”示例。

我们正在设法在 Windows 和 Apple 上构建和运行,但我们在 Android 上遇到了问题。

错误: 找不到引用的组件System.ObjectModel

可以在下面的屏幕截图中看到错误:

See screenshot

我们已经尝试在线搜索解决方案,我们找到了一些,我们尝试了,但没有成功。

另一方面,Xamarin 是否与 Windows 8.1 兼容?也许某些 Android 需求实际上需要 Windows 10 环境。

任何帮助将不胜感激。

【问题讨论】:

  • 请不要将错误发布为屏幕截图 - 这些内容无法被搜索引擎索引。花点时间发布错误消息的文本。
  • Xamarin 和 Visual Studio 太令人沮丧了。全新的解决方案,更新 xamarin 表单,开箱即用,您会收到此警告。我实际上必须通过从以下位置添加 dll 来手动解析此引用:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.ObjectModel.dll。我非常怀疑自己尝试 Xamarin...
  • @Jason 我错过了 MonoAndroid 文件夹,我是否错过了某个步骤?
  • @Bonner웃 不幸的是(或幸运的是)我不再积极地使用 Xamarin 进行开发......所以我不再处理众多的 Xamarin 问题或设置来回答您的问题,抱歉!

标签: c# android visual-studio xamarin xamarin.android


【解决方案1】:

右键单击您的 Android 项目的引用并手动添加引用:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.ObjectModel.dll。从技术上讲,这是一个警告,而不是错误。

【讨论】:

  • 我这样做了,但警告仍然存在。
  • @Jon 确保 dll 路径正确且可读(安全权限)。如果失败,请查看您的 .csproj 专门寻找任何 nuget 包的无效路径。我能想到的最后一个想法是确保您完全是最新的(VS、Xamarin、Mac 上的 Xamarin Studio,一切)。好久没看到这个错误了。
  • 我更新了 VS 和 Xamarin,Facades 文件夹和 System.ObjectModel.dll 已允许读取和运行。并且 .csproj 文件中没有无效路径。
  • 对我来说也一样。我刚刚去了文件夹,检查了权限,它们和你描述的一样,以及所有其他 DLL。但是,对于这个,即使手动添加回来,我也有这个“找不到错误”。我很确定,如果我以管理员身份运行 VS,它会起作用,但感觉不对。
  • 嗯.. 我将 dll 移至解决方案 Packages 目录,从项目引用中将其删除,然后将其添加回来,这一次如果可行。我可能错了,但我有一种预感,csproj 不喜欢“程序文件”中的空间。所有其他程序集都从“包”引用,路径定义中没有任何空格。
【解决方案2】:

我只是完全删除了引用,因为我的代码实际上都没有使用它。

【讨论】:

  • 其他人都知道,这个 dll 包含 INotifyPropertyChanged 和 ICommand 之类的接口,所以我无法删除它。
  • @Helzgate 如果您不在 Xamarin.Android 项目中使用 INotifyPropertyChangedICommand,您可以将其从 Xamarin.Android 项目中删除,我不这样做。我只在我的 PCL 项目中使用这些类,并且从我的 Xamarin.Android 项目中删除它到目前为止没有任何不良影响。
【解决方案3】:

在包管理器控制台中输入:(选择 Android 项目)

update-package -reinstall

速度较慢,但​​方法正确且始终有效

【讨论】:

  • 这是最好的答案。其他答案是解决方法。这是一个解决方案。
  • 我试过这个并没有解决问题,这可能是投票不同意@Dpedrinha的评论的原因。
【解决方案4】:

来自 GitHub 的练习 1 https://github.com/XamarinUniversity/XAM135/ 打开时也有同样的问题。

基于上述解决方案,我通过执行以下步骤解决了:

  1. 更新 Nuget 包

  2. 保存、关闭和 abire 解决方案

  3. copy属性中点击Portable (shared)项目->Referencias->Donet路径 = "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile\Profile111"

  4. 打开 Windows 资源管理器并粘贴路径 = "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile\Profile111",这是 System. ObjectModel.dll 文件

  5. 点击 Droid 项目 -> 参考并删除 System.ObjectModel

  6. 右键单击参考并添加参考

  7. 单击浏览按钮并打开路径 = "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile\Profile111"

  8. 选择 System.ObjectModel.dll,然后单击添加并确定

  9. 引用添加成功!保存,编译项目。

Here 是一个类似的解决方案

【讨论】:

    【解决方案5】:

    尝试将其移至桌面,然后将其作为参考添加到解决方案中。为我工作,视觉工作室可以访问所有其他参考,但由于某种原因没有访问该特定参考。所以我移动了它,我认为它可以访问视觉工作室。只需尝试将其移动到访问不会有问题的地方。

    【讨论】:

    • 你应该解释为什么这会有所帮助,而不是仅仅告诉他们该做什么。
    【解决方案6】:

    复制 dll 并粘贴到包文件夹。更改对新位置的引用并运行项目。当然是临时解决方案。您可以检查文件夹名称中没有空格的路径的另一个位置。 再见

    【讨论】:

      【解决方案7】:

      是的,您部分正确,它可以工作,但在再次提供旧位置 (C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\ v1.0\Facades\System.ObjectModel.dll) 缺失错误已解决。

      【讨论】:

      • 为了得到有用的答案,这个反应需要扩展。解释为什么这是问题的答案。
      猜你喜欢
      • 2017-03-01
      • 1970-01-01
      • 2017-09-04
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多