You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms:Android项目中CurrentPlatform无法访问问题求助

解决Android项目中Azure Mobile Client无法访问CurrentPlatform的问题

嘿,我之前在跨平台项目里用Azure Mobile Client的时候也踩过这个一模一样的坑!iOS能用但Android报错,核心原因是两个平台的初始化逻辑压根不一样,下面给你一步步解决的办法:

问题根源

Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init()是iOS平台专属的初始化方法,Android平台有自己对应的初始化入口,直接照搬iOS的代码自然会出现访问权限问题。

解决方案步骤

1. 替换Android专属的初始化代码

把MainActivity里的报错代码替换成Android平台对应的初始化逻辑:

// 适配旧版Azure Mobile Client(WindowsAzure命名空间)
Microsoft.WindowsAzure.MobileServices.MobileServiceClient.Initialize(this);

// 适配新版Azure Mobile Client(已迁移到Azure命名空间)
Microsoft.Azure.Mobile.Client.MobileServiceClient.Initialize(this);

注意检查你的NuGet包版本,新版本的Azure Mobile Client已经把命名空间从Microsoft.WindowsAzure.MobileServices迁移到Microsoft.Azure.Mobile.Client了。

2. 验证NuGet包的正确性

  • 右键Android项目 → 管理NuGet程序包,确认安装的是支持Android的Microsoft.Azure.Mobile.Client包,版本最好和iOS项目保持一致,避免版本差异引发兼容性问题。
  • 如果之前误装了通用版或仅iOS的包,先卸载再重新安装对应Android的版本。

3. 检查Android项目配置

  • 确保AndroidManifest.xml里添加了必要的网络权限,Azure Mobile Client依赖网络访问:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  • 如果你的项目还没迁移到AndroidX,需要安装Xamarin.AndroidX.Core等兼容包,新版Azure Mobile Client依赖AndroidX库。

4. 清理重建项目

有时候项目缓存会导致奇怪的引用问题,试试这套操作:

  • 右键解决方案 → 清理解决方案
  • 删除Android项目下的bin和obj文件夹
  • 重新生成整个解决方案

问题相关截图

Image 1
Image 2
Image 3
Image 4

内容的提问来源于stack exchange,提问作者Juarez Júnior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:10:58