VS2015中Xamarin Forms空白Android项目编译9个错误的配置排查
分析Xamarin Forms Android编译时AppCompat资源错误的可能配置问题
首先看你的环境和错误信息,这些错误全部指向styles.xml中找不到AppCompat相关的主题和属性,核心原因基本都是AppCompat支持库的配置或引用出了问题,下面是具体的排查方向:
环境回顾
- Visual Studio 2015
- Xamarin Forms Android版本:2.4.0.280
- Target Framework/Target Android Version:Android 6.0(API 23)
- JDK/Android SDK/NDK路径已正确配置
1. AppCompat支持库未正确安装或引用
Xamarin Forms 2.4.x严重依赖Android Support Library里的AppCompat组件,你的项目大概率是缺少这个库或者引用有问题:
- 打开NuGet包管理器(右键项目 -> 管理NuGet包),搜索
Xamarin.Android.Support.v7.AppCompat,确认它已经安装,并且版本和你的Xamarin Forms版本、目标API版本兼容(针对API23的话,选23.x系列的版本,比如23.4.0.1就很合适)。如果没装就直接安装,装了但版本不匹配就尝试降级/更新到对应版本。 - 同时检查Android SDK Manager,确保
Android Support Repository和Android Support Library已经下载了API23对应的版本,没有的话赶紧补上。
2. 目标SDK版本与AppCompat库版本不匹配
你把Target Framework设为了Android6.0(API23),但如果安装的AppCompat库版本是针对更高API(比如API24+)的,就会出现资源不兼容的情况。一定要保证AppCompat库的版本和你目标的API版本对应,比如API23就用23.x的AppCompat包,这样资源引用才能对应上。
3. styles.xml的主题配置或依赖缺失
从错误来看,你的styles.xml里引用了Theme.AppCompat.Light.DarkActionBar这类AppCompat主题,但还可能存在两个小问题:
- 检查
styles.xml里的主题属性是否正确,比如colorPrimary、colorAccent这些属性需要在colors.xml里定义对应的颜色值。如果你的Resources/values下没有colors.xml,赶紧创建一个,示例如下:<?xml version="1.0" encoding="utf-8" ?> <resources> <color name="primary">#2196F3</color> <color name="primaryDark">#1976D2</color> <color name="accent">#FF4081</color> </resources> - 确认
styles.xml的主题继承关系正确,比如主主题必须继承自AppCompat的主题,不能用原生Android主题。
4. 项目缓存或引用损坏
有时候项目的缓存文件会导致这类奇怪的资源错误,试试这些操作:
- 点击Visual Studio顶部的
Build->Clean Solution,然后手动删除Android项目目录下的bin和obj文件夹。 - 右键Android项目 ->
Restore NuGet Packages,修复可能损坏的引用。如果引用列表里Xamarin.Android.Support.v7.AppCompat有黄色感叹号,说明引用无效,直接卸载重装这个NuGet包。
5. Visual Studio 2015的Xamarin组件版本过旧
Visual Studio 2015的Xamarin组件如果版本太老,可能和Xamarin Forms 2.4.0.280存在兼容性问题。你可以打开Tools -> Options -> Xamarin -> Other,检查是否有可用的Xamarin更新,选择和你的Xamarin Forms版本兼容的更新包安装。
内容的提问来源于stack exchange,提问作者Abhiram Behera
相关产品推荐
相关产品推荐

