构建不成功:Xamarin.Forms 中的 Android 项目出错

Posted

技术标签:

【中文标题】构建不成功:Xamarin.Forms 中的 Android 项目出错【英文标题】:Build unsuccessful : Error with Android project in Xamarin.Forms 【发布时间】:2016-02-25 10:36:08 【问题描述】:

我只是创建了一个小型 Xamarin.Forms 示例应用程序。当我构建我的 android 项目时,我遇到了一些错误。 我刚刚搜索了错误并找到了一些解决方案。但没有什么能正常工作。 昨天我重新安装了 Visual Studio 2015 和 Xamarin Studio。 所以可能 xamarin 会全部更新。

这里我只列出我的错误和建议的解决方案。


错误 1:

解压失败。请下载https://dl-ssl.google.com/android/repository/android_m2repository_r10.zip并解压到...~\Local\Xamarin\Android.Support.v4\21.0.3\content目录。

建议的解决方案: 文件已成功下载并根据错误消息替换。


错误 2: _请安装包:SDK 安装程序中提供了“Android 支持库”。 Java 库文件 ...~\Local\Xamarin\Android.Support.v4\21.0.3\embedded\classes.jar 不存在。 请安装包:SDK 安装程序中提供的“Android 支持库”。 Java 库文件 ...~\Local\Xamarin\Android.Support.v4\21.0.3\embedded\libs/internal_impl-21.0.3.jar 不存在。_

建议的解决方案: Android 支持库被删除并重新安装。


错误 3: 原因:...~\Local\Xamarin\zips\1FD832DCC1792D8ACA07FAC3259FC5A9.zip 不是有效的 zip 文件。

建议的解决方案: 我没有找到任何解决此错误的方法。


这些解决方案仍然没有用。在我的情况下不起作用。


我正在使用:

Xamarin 4.0.0.1689 (f860fe4) Xamarin.Android 6.0.0.34 (3efa14c) Xamarin.iOS 9.2.1.51 (3c0ec35)

这是详细的报告:

=== Xamarin Studio ===

5.10 版(内部版本 871) 安装 UUID:c5309e12-1ab1-494c-9296-033a0a5c3f24 运行: 微软 .NET 4.0.30319.42000 GTK+ 2.24.23(MS-Windows 主题) GTK# 2.12.30

=== Xamarin.Android ===

版本:6.0.0 Android SDK:D:\Android\android-sdk 支持的安卓版本: 2.3(API 级别 10) 4.0.3(API 级别 15) 4.1(API 级别 16) 4.2(API 级别 17) 4.3(API 级别 18) 4.4(API 级别 19) 4.4.87(API 级别 20) 5.0(API 级别 21) 5.1(API 级别 22) 6.0(API 级别 23)

SDK 工具版本:24.4

SDK 平台工具版本:23.0.1

SDK 构建工具版本:23.0.1

Java SDK:C:\Program Files (x86)\Java\jdk1.7.0_55 java版本“1.7.0_55” Java(TM) SE 运行时环境 (build 1.7.0_55-b13) Java HotSpot(TM) Client VM(build 24.55-b03,混合模式,共享)

=== Xamarin Android 播放器 ===

版本:0.6.5 位置:C:\Program Files\Xamarin Android Player\DeviceManager.exe

=== 构建信息 ===

版本号:510000871 Git修订:4e9c5abb5ffdae12ba02ac49da83f8b2011dbb88 构建日期:2015-11-12 07:16:34-05 Xamarin 插件:55007ed0e56436f385d8e26394a45be563abc7e8 构建通道:monodevelop-windows-cycle6

=== 操作系统 ===

Windows 6.3.9600.0(64 位)

对于这个错误有什么想法或建议吗?

【问题讨论】:

我在以下要点中编写了一些解决方法:gist.github.com/JonDouglas/f6291eacd4da5f6aa4cd 【参考方案1】:

编辑:此信息现在包含在我们的文档中:https://developer.xamarin.com/guides/android/troubleshooting/resolving-library-installation-errors/

Xamarin.Android 支持库 NuGet m2repository 修复

1。调查

在引用 Android 支持库/Google Play 服务的 NuGet 包时,您可能会遇到下载 m2repository 的问题。

示例错误:

Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and put it to the C:\Users\[Username]\AppData\Local\Xamarin\SUPPORT LIBRARY NAME\VERSION NUMBER directory."

Mac 目录: /Users/[Username]/.local/share/Xamarin/

Windows 目录: C:\Users\[Username]\AppData\Local\Xamarin\

2。文件夹内容

本示例将使用 Windows 路径。这可以应用于任一操作系统。

鉴于以下情况:C:\Users\[Username]\AppData\Local\Xamarin\

将显示每个 Android 支持库/Google Play 服务的文件夹。

每个库都应该有一个版本集合:

注意:在这个例子中,我展示了Android.Support.v4的所有版本

然后我们将调查我们感兴趣的相应版本。我们应该会在其中看到两个文件夹,contentembedded

    content - 包含 m2repository embedded - 包含各自的 .aar 内容

3。自动修复

删除出现错误的版本库文件夹:

Mac 目录: /Users/[Username]/.local/share/Xamarin/SUPPORT LIBRARY NAME/VERSION NUMBER

Windows 目录: C:\Users\[Username]\AppData\Local\Xamarin\SUPPORT LIBRARY NAME\VERSION NUMBER

重新构建您的项目(这将启动构建任务以重新下载库)。

4。手动修复

手动修复此错误有两个步骤。

    m2repository 文件夹添加到/content 文件夹中。 将相应的 Android 支持库/Google Play 服务 .aar 内容添加到 /embedded 文件夹。
1. 将 m2repository 添加到 /content 文件夹

从谷歌下载相应的m2repository

https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip

注意:此版本号将根据您的错误消息而有所不同。

将该 .zip 解压缩到任何目录。现在应该有一个android_m2repository_r25 文件夹。 在android_m2repository_r25 文件夹内,我们有一个m2repository 文件夹。 将m2repository 放入VERSION NUMBER/content 文件夹

2. 将 .aar 内容添加到 /embedded 文件夹 在m2repository 文件夹内,有一个.aar 用于解析支持库。可以在com\android\support目录中找到:

示例:

m2repository\com\android\support

应该有一个support-v4\VERSION NUMBER,其中将包含.aar 文件。 解压.aar并将内容放入embedded文件夹。

示例:

m2repository\com\android\support\support-v4\23.1.1\support-v4-23.1.1 将包含 aaptaidlassetslibsresAndroidManifest.xmlannotations.zipclasses.jar 等项目。 将所有内容放入VERSION NUMBER/embedded文件夹。

5。新的手动修复

获取缺少的 m2repository 下载的 URL 在下载 URL 上使用 MD5 哈希 将文件重命名为 MD5HASH.zip(其中 MD5HASH 是经过哈希处理的下载 URL) 将新的散列 .zip 文件放在 Xamarin\zips 目录中

【讨论】:

天才! 5号对我有用,非常感谢。我已经尝试了其他所有方法。 是否安装了手册,但下载的 .zip 文件中缺少 classes.jar。为什么?【参考方案2】:

删除所有 zip 文件。即使它要求您下载和替换,它也会再次损坏。更快的方法是删除所有 zip 文件并重建,它会根据需要自动下载和解压缩。

Android m2repository 在我的机器上经常损坏。

我还建议使用 Android,针对 API 23 (6.0) 构建并将最低级别设置为 15(除非您真的需要 API 10)。确保您不使用“最新 SDK”选项,这在过去也已知会导致问题,请选择其下方的最高 API。

【讨论】:

【参考方案3】:

删除位于 \Local\Xamarin\zips\1FD832DCC1792D8ACA07FAC3259FC5A9.zip 的压缩包

清理并重建您的解决方案。

【讨论】:

【参考方案4】:

我在尝试使用 xamarin forms 2.0 时遇到了这个问题

问题通常出现在 IDE(例如 VS2015)尝试解压缩该 zip...VS 挂起并且您必须强制关闭它...当您重新打开 IDE 时,您无法使用使用此版本的 xamarin 编译任何内容。

首先你应该下载 r23 而不是 r10。每个都包含每个版本 api 的程序集。

当你拥有它时,你应该删除 C:\Users\%username%\AppData\Local\Xamarin 上的库文件夹,例如 Android.Support.v4

使用库名称创建路径 C:\Users\%username%\AppData\Local\XamarinLibraryName\23.0.1

将下载的 r23 复制并解压到 C:\Users\%username%\AppData\Local\Xamarin\Android.Support.v4\22.2.10\content

转到 m2repository\com\android\support 并在 libraryname\version 下,您将得到一个扩展名为“.aar”的文件,这是一个重命名为 .rar 的 zip 文件并将其解压缩到 C:\Users\%username%\ AppData\Local\XamarinLibraryName\23.0.1\embedded

顺便说一下,下载的 r23.zip 的副本必须保留:

C:\Users\%username%\AppData\Local\Xamarin库名称\23.0.1\

完成此操作后,您可以再次编译

【讨论】:

【参考方案5】:

花了一整夜努力让这个工作,结果我在初始构建期间强行关闭了 VS,以为它卡住了,不知道它实际上正在下载一个 > 200MB 的文件到我的 C:\Users[UserName]\AppData \Local\Xamarin\zips 文件夹。

删除损坏的 zip 文件并有足够的耐心重新运行重建肯定可以解决问题。

【讨论】:

【参考方案6】:

简单来说

->处理并清除 Xml 文档中的所有错误之后

-> 点击锤子图标来构建和制作项目或按Ctrl+F9

【讨论】:

以上是关于构建不成功:Xamarin.Forms 中的 Android 项目出错的主要内容,如果未能解决你的问题,请参考以下文章

如何从解决方案中的文件加载 XML 文件,使用嵌入式资源构建?项目 > 跨平台 > Xamarin.Forms

Xamarin Forms - 自定义地图标记不可见

Xamarin Forms Android Build 中的 AccessibilityServiceInfoCompat 错误

Xamarin.Forms 中的计时器

Xamarin.Forms:Android 项目构建错误 - AppData\Local\Xamarin 文件夹中缺少文件

无法调试在 Xamarin.Forms 中制作的 IOS 应用程序