【问题标题】:Resource Error When Creating Xamarin Forms Project Via Standard Template Versus Prism Template通过标准模板与 Prism 模板创建 Xamarin 表单项目时出现资源错误
【发布时间】:2019-12-09 04:53:40
【问题描述】:

昨天下午,我使用 standard 空白模板创建了一个 Xamarin 表单项目。

当我尝试将项目部署到运行版本 4.4 的 Android 模拟器时,会引发以下异常:

Android.Content.Res.Resources+NotFoundException: 'File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f070059'

这发生在 Android 项目的 MainActivity.cs 中的代码行 base.OnCreate(savedInstanceState); 上。

论坛帖子 (here) 似乎表明这是由不受支持的(旧)Android 版本引起的。这似乎是合理的,因为如果我在更高版本上运行该应用程序,它将起作用。我的理解是仍然支持 4.4,所以我不确定问题是什么。我对此论坛帖子发表了评论,但不确定是否有人会看到它,因为它被标记为已解决。

我用 Prism 标签标记了这个问题,但这不是 Prism 问题。我想也许 Prism 领域的某个人可以告诉我,自从 Prism 模板工作以来发生了什么。

【问题讨论】:

    标签: android xamarin.forms prism


    【解决方案1】:

    经过一番研究,我发现Xamarin.Andorid release note中列出了一个已知问题:

    GitHub 3314:“Java.Lang.Exception: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f080058”将在 Android 4.4 KitKat(API 级别 19)或更低版本上中止应用程序的执行,这些应用程序使用 AAPT2 构建并使用 Android 支持库。

    解决方法:

    --no-version-vectors 选项添加到.csproj 文件中的$(AndroidAapt2LinkExtraArgs) MSBuild 属性:

    XML

    <PropertyGroup>
        <AndroidAapt2LinkExtraArgs>--no-version-vectors</AndroidAapt2LinkExtraArgs>
    </PropertyGroup>
    

    然后清理并重建项目。

    关注Github线程或者新的release note查看这个issue的处理过程:xamarin/xamarin-android/pull

    【讨论】:

    • 这也解决了 Xamarin Android(与 Xamarin Forms 相对)的相同问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 2013-06-08
    • 2018-09-15
    • 1970-01-01
    相关资源
    最近更新 更多