如何手动安装 Xamarin.Android.Support 包所需的 Android 支持库?

Xamarin.Android.Support.v4 的示例步骤

下载所需的 Xamarin.Android.Support NuGet 包(例如,通过使用 NuGet 软件包管理器进行安装)。

使用 ildasm 检查 NuGet 包需要哪个版本的 android_m2repository.zip

ildasm /caverbal /text /item:Xamarin.Android.Support.v4 packages\Xamarin.Android.Support.v4.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll | findstr SourceUrl

示例输出:

property string 'SourceUrl' = string('https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip')
property string 'SourceUrl' = string('https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip')
property string 'SourceUrl' = string('https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip')

使用 ildasm 返回的 URL 从 Google 下载android_m2repository.zip。 或者,可以检查当前在 Android SDK 管理器中安装的 Android 支持存储库的版本:

如果版本与 NuGet 包所需的版本匹配,则无需下载任何新内容。 可以改为重新压缩位于 SDK 路径中的 extras\android的现有 m2repository 目录(如 Android SDK 管理器窗口顶部所示)。

计算从 ildasm 返回的 URL 的 MD5 哈希。 格式化结果字符串以使用所有大写字母且不包含空格。 例如,根据需要调整 $url 变量,然后在 PowerShell 中运行以下两行(基于来自 Xamarin.Android 的原始 C# 代码):

$url = "https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip"
(([System.Security.Cryptography.MD5]::Create()).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($url)) | %{ $_.ToString("X02") }) -join ""

示例输出:

F16A3455987DBAE5783F058F19F7FCDF

将android_m2repository.zip复制到 %LOCALAPPDATA%\Xamarin\zips\ 文件夹中。 重命名该文件以使用上一个 MD5 哈希计算步骤中的 MD5 哈希。 例如:

%LOCALAPPDATA%\Xamarin\zips\F16A3455987DBAE5783F058F19F7FCDF.zip

(可选)将文件解压缩到 %LOCALAPPDATA%\Xamarin\Xamarin.Android.Support.v4\23.4.0.0\content\ (创建 content\m2repository 子目录)。 如果跳过此步骤,则使用该库的第一个版本将花费较长时间,因为它将需要完成此步骤。 子目录的版本号(在此示例中为 23.4.0.0)与 NuGet 包的版本号不太相同。 可以使用 ildasm 来查找正确的版本号:

ildasm /caverbal /text /item:Xamarin.Android.Support.v4 packages\Xamarin.Android.Support.v4.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll | findstr /C:"string 'Version'"

示例输出:

property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}

后续步骤

本文档将讨论截至 2016 年 8 月的当前行为。 由于本文档中所述技术不属于 Xamarin 稳定测试套件,因此将来可能会出故障。

如需进一步的帮助,请与我们联系,或者,如果在使用上述信息后仍然存在此问题,请参阅 Xamarin 有哪些可用的支持选项?,了解有关联系人选项、建议以及如何在需要时提交新 Bug 的信息。