我有一个 Xamarin Forms 项目,现在我想使用新的视觉/材质功能来改进它。
在 IOS 上,它就像一个魅力。
在 Android 上,我遇到了奇怪的问题:添加 Xamarin.Forms.Visual.Material nuget 后,我收到奇怪的错误消息,并且我的项目无法构建:
\res\values\values.xml(6): error APT0000: Attribute "statusBarBackground" already defined with incompatible format.
\res\values\values.xml(2): error APT0000: Original attribute defined here.
\res\values\values.xml(10): error APT0000: Attribute "layout_anchorGravity" already defined with incompatible format.
\res\values\values.xml(2): error APT0000: Original attribute defined here.
\res\values\values.xml(17): error APT0000: Attribute "layout_insetEdge" already defined with incompatible format.
\res\values\values.xml(2): error APT0000: Original attribute defined here.
\res\values\values.xml(17): error APT0000: Attribute "layout_dodgeInsetEdges" already defined with incompatible format.
\res\values\values.xml(2): error APT0000: Original attribute defined here.
\res\values\styles.xml(2): error APT0000: Error retrieving parent for item: No resource found that matches the given name 'Theme.MaterialComponents.Light.DarkActionBar'.
\res\values\styles.xml(2): error APT0000: No resource found that matches the given name: attr 'materialButtonStyle'.
\res\values\styles.xml(2): error APT0000: Error retrieving parent for item: No resource found that matches the given name 'Widget.MaterialComponents.Button'.
\res\values\styles.xml(2): error APT0000: Error retrieving parent for item: No resource found that matches the given name 'Widget.MaterialComponents.Button.OutlinedButton'.
\res\values\styles.xml(2): error APT0000: Error retrieving parent for item: No resource found that matches the given name 'Widget.MaterialComponents.TextInputLayout.FilledBox'.
\res\values\styles.xml(2): error APT0000: No resource found that matches the given name: attr 'boxCollapsedPaddingTop'.
我在 Windows 上使用 Visual Studio 2017 Professional,不使用任何预发布的 nuget。
Xamarin.Forms 版本是 3.6.0.293080。
最低 Android API 级别为 21,目标为 28,并使用 28 进行编译。
Xamarin Android 支持库版本是 28.0.0.1。
我尝试了常用的技巧(删除 bin、obj 目录、重新启动 Visual Studio、在管理模式下运行它、删除 Xamarin 应用程序数据...),但都没有帮助。
如果我从头开始创建一个新项目,并且不对其执行任何操作,只需将 Visual.material nuget 添加到 Android 项目中,也会发生同样的情况。
你有什么建议吗?多谢!
几天前我遇到了同样的问题,我首先将 TargetFramework 设置为 Android 8.1,安装了相同的软件包,后来将其更改为 Android9 并安装了新软件包。
Xamarin.Forms.Visual.Material 要求在 Android 项目选项中设置 Android 9,并且您之前已为 Android 8.1 配置并安装了 8.1 nuget 包。
如果你还用旧的包配置 https://learn.microsoft.com/en-us/nuget/reference/packages-config像我一样添加 NuGet 包,确保您始终在 csproj 的提示路径中看到相同的 monodroid 字符串,并且不要将 81 与 90 混合在一起,并且始终有单一安卓90.
<Reference Include="Xamarin.Forms.Visual.Material , Version=3.6.0.293080, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.Material.3.6.0.293080\lib\monoandroid90\Xamarin.Forms.Material.dll</HintPath>
</Reference>
将TargetFramework改为9后,打开包管理器控制台 https://learn.microsoft.com/en-US/nuget/consume-packages/install-use-packages-powershell#opening-the-console-and-console-controls并运行
Update-Package -Reinstall -IgnoreDependencies
让 VS 更新packages.config 和csproj。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)