XF Android项目在添加Xamarin.Forms.Visual.Material nuget后未生成

XF Android项目在添加Xamarin.Forms.Visual.Material nuget后未生成,android,xamarin.forms,Android,Xamarin.forms,我有一个Xamarin表单项目,现在我想用新的视觉/材质特性来改进它 在IOS上,它就像一个符咒 在Android上,我遇到了一些奇怪的问题:添加Xamarin.Forms.Visual.Material nuget后,我收到了奇怪的错误消息,我的项目没有生成: \res\values\values.xml(6): error APT0000: Attribute "statusBarBackground" already defined with incompatible format. \r

我有一个Xamarin表单项目,现在我想用新的视觉/材质特性来改进它

在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

表单版本是3.6.0.293080。 Android API的最低级别是21,目标是28,编译时使用28。 Xamarin Android支持库版本为28.0.0.1

我尝试了一些常见的技巧(删除bin、obj dir、重新启动visualstudio、在管理模式下运行它、删除Xamarin应用程序数据……),但都没有奏效

如果我从schratch创建一个新项目,并且不做任何事情,只需将visual.material nuget添加到Android项目中,也会发生同样的情况


你有什么建议吗?非常感谢

几天前,我遇到了同样的问题,我第一次将TargetFramework设置为Android 8.1,安装了相同的软件包,后来将其更改为Android9,并安装了一个新的软件包

Xamarin.Forms.Visual.Material要求在Android项目选项中设置Android 9,并且您之前已经为Android 8.1配置并安装了nuget软件包

如果您仍然使用old like me添加NuGet包,请确保在csproj的提示路径中始终看到相同的monodroid字符串,并且不要将81与90混合使用,并且始终使用monodroid 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>

要让VS更新packages.config和csproj。

我在github上找到了这个答案:

将Package.json文件迁移到PackageReference以解决问题

1-右键单击Android项目中的packages.config

2-单击Migration Package.config到PackageReference

3-接受

4-Run项目

参考:


我还使用Nuget更新了引用,完成了一个干净的、删除的obj和bin fonder,然后进行了构建。

这就是您正在使用的吗?我使用Xamarin.Forms.Visual.Material,不是pre relase,而是稳定的(3.6.0.293080)。现在根据您的建议,我也尝试了最新的pre relase,但它并没有修复错误。您是否尝试摆脱resource designer并让它重新生成?如果您仍然使用旧的packages.config,请确保在提示路径中始终看到相同的monodroid,并且不要将81与90ok混合使用,我把它作为答案贴了出来。只是附带说明:这个答案解决了csproj混合了monoandroid81和monoandroid90时出现的问题,除了原来的问题外,它还涵盖了许多其他情况。@xle您在哪个问题上有?与问题相同的错误,但我没有使用Xamarin.Forms.Visual.Material您的答案修复了我的所有问题had@magicandre1981在Visual Studio 2017上将Xamarin.KeyboardHelper库添加到Xamarin.forms项目时,我遇到了相同的问题。它要求将目标框架设置为9.0。我添加了nuget并将目标框架从8.1设置为9.0,但在Android上仍然存在这个问题。有什么建议吗?Thanks@pixel在csproj中查看提示路径始终为monoandroid90
Update-Package -Reinstall -IgnoreDependencies