【问题标题】:Xamarin Android: Hundreds of warnings saying to check if Nuget packages are compatibleXamarin Android:数百条警告说要检查 Nuget 包是否兼容
【发布时间】:2018-05-25 01:47:53
【问题描述】:

我正在构建一个应用程序,我有数百个类似这样的警告:“跳过 TPProject.Resource.Drawable.ic_collapse_00000。请检查您的 Nuget 包版本是否兼容。”

我的编译/目标框架是 Android 8.0,我的目标 Android 版本是 6.0,我的最低 Android 版本是 5.1。我已将所有 Nuget 包更新到最新版本。

怎么了??

【问题讨论】:

  • 你有tried my fix吗?
  • @magicandre1981 我不再在那个项目中工作,但我会用我拥有的项目副本测试你的修复,看看它是否有效。谢谢!
  • 好的,请尝试一下,看看它是否也有帮助。我花了一些时间才找到这个。

标签: xamarin xamarin.android nuget nuget-package


【解决方案1】:

我知道这是一个老问题,但我最近遇到了同样的问题。对我有用的解决方案是将最低 Android 版本更改为 6.0:

如果您阅读了 Xamarin.Android.Support 的依赖项部分。* NuGet 包管理器中的库,您可以看到 Xamarin.Android.Support.* v28.0.0 库仅支持 MonoAndroid,Version=v6.0 到 MonoAndroid,Version=v9.0。

简而言之; v28.0.0 支持库适用于 Android 6.0-9.0, 因此在我们提升最低 Android 版本之前的警告...

https://forums.xamarin.com/discussion/128406/xamarin-forms-3-1-resources-warnings-for-android

【讨论】:

    【解决方案2】:

    thisthisthat 等来源都声明相同:

    如果您的项目使用的 Xamarin.Android.Support 库版本与包含的 NuGet 包(使用特定的 Xamarin.Android.Support 库版本构建)不同,则会出现警告。不知道此行为是否已在较新版本中得到修复,否则您会遇到此警告。

    您可以更改所有 Xamarin.Android.Support 库的库版本,但如果您包含许多 NuGet 包,则不可能全部使用相同的版本。

    升级Xamarin.Android.Support 库并增加TargetFrameworkVersion 后,我出现了该错误。另一种解决方案是降级,但我不能,因为其他库依赖它。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,并通过将此条目添加到 csproj 来解决它:

      <AndroidUseManagedDesignTimeResourceGenerator>False</AndroidUseManagedDesignTimeResourceGenerator>
      

      禁用 managed tool 并再次使用旧的 aapt 工具。

      从 Xamarin.Android 10.0.0.4 开始,附带 Visual Studio 2019 版本 16.3 Preview 2 或 Visual Studio 2019 for Mac 版本 8.3 Preview 2,Microsoft downgraded the warning to message/information

      所以当 16.3 是最终版本时,警告将消失,因为它们不是真正的问题。

      【讨论】:

        【解决方案4】:

        这确实消除了警告:

        • 更新 Xamarin 扩展
        • 清洁溶液
        • 构建解决方案

        结果:所有警告都消失了,但 Resource.designer.cs 被修改了

        public static void UpdateIdValues()
        {
        ...
        lot of new rows
        ...
        }
        

        【讨论】:

        • 当您说“更新 Xamarin 扩展”时,您是指确保各种 Xamarin NuGet 包对于有问题的项目是最新的吗?
        • 是的,Xamarin Extentions nuget 包的更新,这个包会自动更新所有必要的包(这可能会导致错误)
        【解决方案5】:

        您的控制台中的错误似乎与从 android SDK 自动添加的资源有关。也许尝试让 VS 重新生成资源文件,方法是在 Android 项目的资源目录中添加一个新文件(任何东西,你可以在之后删除它)。如果这不起作用,请尝试将编译和目标版本显式设置为 8.0 并执行相同的操作。

        另外,我认为 ic_cast_grey 是 Support v7 library 的一部分,因此请确保您已将其包含在 Nuget 包列表中。

        编辑

        您还应该通过以管理员身份运行 SDK 管理器来确保您的 Android SDK 是最新的(假设您在 Windows 上并将其安装到默认的 Program Files 目录)。

        我还了解到,有时删除和重新添加软件包会有所帮助,以便它们刷新本地缓存。也许你也可以试试。

        【讨论】:

        • 感谢您快速回答理查德。当我删除资源文件时,所有警告都会立即消失,但是在我重建后它们又回来了。另外,我安装了 Support v7 library nuget 包。剩下的唯一一件事就是将编译和目标版本明确设置为 8.0,但是,我不确定在哪里可以做到这一点。你能为我指出正确的方向吗?谢谢!
        • @SamyCode 在解决方案资源管理器中右键单击 Android 项目并转到属性。左侧的 Application 选项卡具有 Compile 版本,Android Manifest 选项卡具有 Target 版本。
        猜你喜欢
        • 2018-11-30
        • 1970-01-01
        • 2017-01-05
        • 2019-07-26
        • 1970-01-01
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多