在清单中发现意外的元素<uses-library>

时间:2019-10-10 09:47:51

标签: c# android xamarin

我在xamarin项目中使用org.apache.legacy库。我在清单文件中添加了<uses-library>标记,但是在构建项目时出现错误:

Unexpected element <uses-library> found in manifest.

另外,当我尝试注释该行时,它会在构建解决方案时返回。

5 个答案:

答案 0 :(得分:2)

uses-library标签应该放置在application元素内,这就是为什么会出现错误的原因。

即使更改它,编译器仍会抱怨同一行的问题很可能可以通过重新启动Xamarin studio,然后清理项目并重建来解决。

答案 1 :(得分:1)

通过使用Notepad ++编辑清单文件,只需删除uses-library标记并将其放置在application标记内,即可为我解决此问题(尽管清理,重建等。)。

有点类似于@ cmw2379所说的话。

答案 2 :(得分:0)

好,所以我的一位同事找到了解决方案,但这很奇怪。因此,就上下文而言,我们使用Visual Studio for Mac,因此它可能与Windows 100%不兼容。我们发现的问题是Visual Studio对AndroidManifest.xml文件有几个不同的视图,并且其中一个视图是在过去的某个时间修改的。

  • 默认视图是基于UI的视图,其中包含输入内容以及不有助于处理文件的内容。
  • 第二个视图是右键单击清单文件并使用OpenWith -> 'Source Code editor'。该视图是xml中可编辑清单的简约视图。在这里,您还应该找到关于apache库的问题行,该行不在应有的应用程序标记中。因此,您可以在此处将其删除。
  • 第三个视图是生成的清单,可以通过遵循IDE输出的关于uses-library标记的错误消息来找到。

清单UI视图->清单中间xml视图->清单生成的文件

似乎您只能修改xml中清单文件的一个版本,因为另一个版本将始终覆盖您的更改。通过遵循该错误消息,您只会得到最终的输出,而不是可以实际编辑并维护其更改的中间清单。很久以前,在我们的项目中对清单进行了修改,而现在最新版本的Visual Studio却将其引发错误。

建议的解决方法是不遵循错误消息来打开清单,而是打开xml raw中的清单文件。这将是一个比生成的文件小的文件,因此请寻找该文件,以确保您位于正确的位置。删除错误放置在“应用程序”标签外部的“ uses-library”行并保存。希望这对其他人有所帮助,因为它肯定让我忙了几个小时。

答案 3 :(得分:0)

因此,在这个愚蠢的错误上过夜后,我从零开始创建了一个全新的应用程序,并配置/安装了所有软件包和SDK,以便在Xamarin android native中使用Google Maps,这次我将标签放入了应用程序标签和在我的设备上安装了该应用,它运行正常。 希望能帮助到你 !!干杯!

答案 4 :(得分:0)

这是相当普遍的一个(或者至少让我不止一次被抓到)。

Visual Studio编译并运行代码时,它将从(例如)/bin/Debug/netcoreapp3.1

对于某些类型的文件,您必须告诉VS将其复制到此“工作文件夹”或输出目录中。 appSettings.json配置文件经常发生这种情况,并引起混乱,在这种情况下,情况非常相似。

在VS中找到文件,右键单击属性,然后将“复制到输出目录”字段的值更改为“始终复制”或“如果更新则复制”。