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文件夹 - 重新生成整个解决方案
问题相关截图
内容的提问来源于stack exchange,提问作者Juarez Júnior
相关产品推荐
相关产品推荐

