您的位置:首页 > 移动开发 > Android开发

解决新建Xamarin.Forms项目,编译Android项目时出错的问题

2016-10-24 18:32 609 查看
1、问题描述

在进行Xamarin.Forms开发时,可能会遇到各种各样的坑,其中比如我在上一篇博客中提到的问题:解决vs2015新建Android项目时,提示“未将对象引用设置到对象的实例”的问题。

而下面这个问题,是在新建Xamarin.Forms项目成功之后,编译Android项目时出现的问题。错误信息如下所示:

Please install package: 'Xamarin.Android.Support' available in SDK installer. Java library file C:\Users\Administrator.LiKui-PC\AppData\Local\Xamarin\Xamarin.Android.Support.v7.RecyclerView\24.2.1\content\classes.jar doesn't exist.


错误提示大概是说需要安装某个包,在某个路径下找不到某个文件。具体的错误信息如下图所示:



2、原因分析

通过
stackoverflow
中的Xamarin Support Package error
xamarin
中的Project won’t build: Xamarin.Android.Support介绍得知,这是由于Android SDK缺失
m2repository
相关文件造成的。在使用Andorid SDK Manager安装SDK时未安装m2repository相关文件,而Visual Studio在编译时会从google的服务器进行下载。由于国内无法访问google,也就无法下载这些文件,所以你会发现编译的时候会卡在那里很久。

3、思路探索

3.1、自行下载文件

在百度找到了一个地址,虽然没有最新的,但感觉还是比较新了。点击这里去下载。

按名称排序,找到
android_m2repository_rXX.zip
文件,随便下载一个文件(我选择了一个最新的文件)。如下图所示:



3.2、放到哪里?

这篇博客说将下载的zip文件拷贝到
C:\Users\your user\AppData\Local\Xamarin\zips
这个目前下。

3.3、尝试解决

步骤如下:

a、首先将
Visual Studio
关闭

b、删除文件夹
C:\Users\your user\AppData\Local\Xamarin
(由于Visual Studio占用,可能要重试多次)

c、新建文件夹
C:\Users\your user\AppData\Local\Xamarin\zips


d、打开
Visual Studio
并重新编译

这个时候由于去google下载m2repository文件,会持续比较长的时间。此时在上述路径下会生成一个0字节大小的zip文件,如下图所示:



e、再次关闭
Visual Studio
(避免下面替换文件时提示占用)

f、将3.1下载的文件重命名为上图中的名称,并复制替换掉文件。

g、重新打开
Visual Studio
进行编译

不幸的是,上图中的文件又被替换为0字节!(后面发现是版本不对引起的)

h、重复e、f步骤,并将文件属性改为“只读”

i、再一次打开
Visual Studio
进行编译

出现文件访问被拒绝的错误(只读了肯定会被拒绝访问),同时还提示下载
android_m2repository_r38.zip
文件错误。如下图所示:



从上图中可以看出,3.1中的下载的
android_m2repository
文件版本与Xamarin.Forms要求的版本不一致。

j、通过NuGet安装对应版本的
Xamarin.Forms
及相关Android支持包

没有办法,只能通过NuGet安装对应版本和
Xamarin.Forms
了。经过反复测试,发现
android_m2repository_r36.zip
对应的包如下:

Xamarin.Forms 2.2.0.45


Xamarin.Android.Support.Design 23.0.1.3


Xamarin.Android.Support.v4 23.0.1.3


Xamarin.Android.Support.v7.AppCompat 23.0.1.3


Xamarin.Android.Support.v7.CardView 23.0.1.3


Xamarin.Android.Support.v7.MediaRouter 23.0.1.3


k、重复上述e、f、g步骤

经过上述步骤,正常情况下应该可以成功编译通过了(虽然也等了比较久,可能是一些包的不同版本依赖关系存在冲突)。

解决本文所述问题的关键在于:

a、下载正确版本的
m2repository
文件进行替换。

b、通过
Visual Studio
编译时生成的
.zip
文件拿到要替换的文件名称。

4、参考资源

xamarin.forms新建项目android编译错误

解决Xamarin Android墙的问题

Xamarin.Android 反复报 Please Download android_m2repository_rxx.zip 的解决办法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息