通过标准模板和棱镜模板创建Xamarin Forms项目时出现资源错误

Jas*_*ier 0 android prism xamarin.forms

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

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

Android.Content.Res.Resources+NotFoundException: 'File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f070059'
Run Code Online (Sandbox Code Playgroud)

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

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

我用棱镜标签标记了这个问题,但这不是棱镜问题。我认为也许棱镜领域的某个人可能会告诉我,因为棱镜模板正在工作。

Jac*_*Hua 5

经过研究后,我发现Xamarin.Andorid发行说明中列出了一个已知问题:

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

解决方法:

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

XML格式

<PropertyGroup>
    <AndroidAapt2LinkExtraArgs>--no-version-vectors</AndroidAapt2LinkExtraArgs>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

然后清理并重建项目。

请按照Github线程或新发行说明检查此问题的过程:xamarin / xamarin-android / pull