在 Android 的发布模式下编译时出现 Xamarin Forms 错误 - 找不到与给定名称“Base.V21.Widget.Design.AppBarLayout”匹配的资源

Posted

技术标签:

【中文标题】在 Android 的发布模式下编译时出现 Xamarin Forms 错误 - 找不到与给定名称“Base.V21.Widget.Design.AppBarLayout”匹配的资源【英文标题】:Xamarin Forms error when compiling in release mode for Android - No resource found that matches the given name 'Base.V21.Widget.Design.AppBarLayout' 【发布时间】:2019-01-02 18:25:35 【问题描述】:

当我尝试在发布模式下编译以将我的应用程序放入 android App Store 时,我收到以下错误。当我为调试模式编译时,我没有收到错误。

我发现了对类似错误的引用。它们似乎围绕着与 Android SDK 不匹配的 android 支持服务。我在 Android 28 SDK 上运行。我已将我的谷歌支持库更新为 NuGet 中的 v28.0.0。我在macosx中运行,正在使用vs mac。

我在这个问题上很茫然。任何建议表示赞赏。

TIA

...../obj/Release/lp/40/jl/res/values-v26/values-v26.xml(0,0):错误 APT0000:检索项目的父项时出错:未找到匹配的资源给定名称“Base.V21.Widget.Design.AppBarLayout”。 (APT0000)....

【问题讨论】:

仅供参考,我之前启用了 proguard。我已经禁用它,同样的结果。所以,proguard 跟什么都没有关系。 仅供参考,我能够在 Windows 上成功编译。我在我的 Mac 上,如果可能的话,我想从这里编译并上传到 Play 商店。 试试这个。转到您的 Android 项目的属性 > 构建 > 常规 > 使用 Android 版本编译:(目标框架):将其设置为 Android 的最高版本。如果失败,请尝试清理、恢复 Nuget 包并重建您的项目。这也发生在我身上,这些建议(通常)有效。 感谢@iamlawrencev。这并没有解决问题,但我终于解决了。 【参考方案1】:

好的,我不确定我是否已经完全“解决”了这个问题,但我至少目前已经解决了。我不断挖掘输出,在构建输出的自定义 proguard.cfg 信息中发现了一个有趣的字符。我打开了我在 notepadd++ 中创建的 proguard.cfg 文件。果然,notepadd++ 设置为使用“UTF-8 with BOM”设置进行编码。我改变了,重新保存,重建,没有错误。我会密切注意这一点,但目前的问题已经解决。感谢大家的意见。非常感谢。 :-)

【讨论】:

以上是关于在 Android 的发布模式下编译时出现 Xamarin Forms 错误 - 找不到与给定名称“Base.V21.Widget.Design.AppBarLayout”匹配的资源的主要内容,如果未能解决你的问题,请参考以下文章

在 mingw 下编译时出现 PathFindFileName 错误

Linux下编译busybox时出现的问题

编译c ++项目/ Open GL时出现纹理错误

在调试或发布/分发模式下编译时 iOS 应用程序的性能

以下程序在 C89 模式下编译时如何输出“C89”,在 C99 模式下编译时如何输出“C99”?

在发布模式下编译时不会发出 QNetworkAccessManager 完成信号(VS 2005)