如何手动安装 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 的信息。