繁体   English   中英

Xamarin.Android 应用中的 XML 和 AXML 有什么区别?

[英]What is the difference between XML and AXML in Xamarin.Android Apps?

自 VS2019 以来,我注意到每个新项目都有常规的 XML 作为其资源,如原生 Android Studio 应用程序,但之前(2015 年或 2017 年)它创建了AXML文件。

在内部,这些文件看起来完全一样,但最近我在 VS2019(Windows 或 Mac)的每个新版本中发现 Xamarin.Android 中的新错误,例如:

也许,我应该使用 AXML 文件,因为昨天出现了一条不常见的评论

链接器删除了需要的类,显然没有解析axml以查看它们实际上是需要的

这种情况让我想知道它们之间是否有任何特定区别,因为当我运行我的应用程序时,它运行良好,而它不适用于Release或某些配置,例如链接所有程序集

重要的提示:

正如我的问题标题所说:我想知道两个扩展名之间的区别,因为出于任何原因,扩展名在没有任何通知的情况下发生了变化。 前面的情况只是引起了我对这种情况的好奇,它们没有必要联系。

.axml 只不过是一个扩展黑客,用于在 Visual Studio 中呈现Android Layout Files即 Android 风格的 .xml 文件 它的字面意思是 .axml (Android XML)。

我们以前缺乏基础设施来解释来自所有不同类型工作负载的 .xml 文件的不同版本。 但是,在 16.2 和 8.2(Visual Studio 和 Visual Studio for mac)中,您可以在应用程序中无缝使用.xml ,并提供布局编辑器、丰富的智能感知等。

如果你不需要一个布局编辑器,你已经能够自MonoDroid的第一个版本使用.XML .axml处理方式相同.xml在这一天结束。

首先,链接器不会对您的布局文件做任何事情。 所以.axml 或.xml,它只是不会触及或解析它。 链接器只处理由布局文件表示的类,而不是布局文件本身。

现在,关于“.axml”与“.xml”,我相信“.axml”扩展名只是 MonoDroid 遗留下来的东西。 该特定扩展的唯一目标可能是从常规 xml 文件中识别 android 布局文件,没有任何高级逻辑(这只是一个假设)。

长话短说,如果您在项目中遇到有关链接器的问题,这可能与您选择的布局文件扩展名无关。 您应该将 Visual Studio 定义的任何内容保留为默认值。

首先,链接所有程序集很容易崩溃,虽然这些崩溃可以通过一定程度的努力和知识来修复,正是因为它会导致比它帮助更多的麻烦,它不是 Xamarin 推荐的选项。 所以那些不是“错误”,那些崩溃是预期的行为。

其次,您链接的 github 上的评论并没有说明 axml 文件有任何问题。 它说您的 axml 文件需要存在一些库,并且编译器无法确定它会删除它并导致崩溃。

基本上它与您标题中的问题无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM