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

Xamarin集成Google OAuth报Invalid file name错误如何解决

Xamarin.Android Google OAuth集成:缺失GoogleServicesJson生成选项+文件名非法报错解决方案

问题现象

  • 集成Google OAuth时已将google-services.json放置在Android项目根目录
  • 选中文件查看属性,生成操作(Build Action)下拉列表无GoogleServicesJson选项
  • 执行重新生成操作时抛出错误:Invalid file name: It must contain only [^a-zA-Z0-9_.]+,报错指向项目内的google-services.json文件

解决步骤

1. 先修复全路径非法字符问题

这个报错来自Xamarin Google Play Services包的构建校验逻辑,会检查google-services.json的完整绝对路径,要求路径所有字符只能是大小写英文字母、数字、下划线、英文点,出现其他字符就会触发报错,常见触发场景:

  • Windows系统用户名为中文,导致C:\Users\中文用户名\路径段包含非合规字符
  • 解决方案存放的文件夹包含空格、中文、短横线-、&、括号等特殊符号
  • google-services.json文件名本身被添加了空格、特殊后缀

修复方式:将整个解决方案迁移到纯英文、无空格无特殊符号的路径下,例如C:\Dev\YourAppName\,确认从盘符到文件的所有路径段都符合字符要求后,再执行后续操作。

2. 安装依赖NuGet包,注入GoogleServicesJson构建任务

GoogleServicesJson生成选项不是Visual Studio内置选项,由Xamarin Google Play Services相关NuGet包的MSBuild任务提供,选项缺失说明对应依赖未安装:

  • 右键Android项目,选择「管理NuGet程序包」
  • 搜索安装稳定版Xamarin.GooglePlayServices.Auth(做Google OAuth会直接用到这个包,其依赖的Xamarin.GooglePlayServices.Base会自动安装,包含所需的构建任务)
  • 安装完成后完全关闭Visual Studio,重新打开解决方案,仅重新生成不会加载刚安装的MSBuild任务,必须重启IDE。

3. 手动编辑项目文件补配置(重启后选项仍不显示时用)

如果重启IDE后属性面板依然找不到GoogleServicesJson选项,直接手动修改项目文件即可:

  • 右键Android项目,选择「卸载项目」,再次右键选择「编辑[你的项目名].Android.csproj」
  • 在文件中找到原有引用google-services.json的ItemGroup节点,替换为如下配置:
<ItemGroup>
  <GoogleServicesJson Include="google-services.json" />
</ItemGroup>
  • 保存csproj文件,右键选择「重新加载项目」即可。

4. 验证修复结果

  • 执行清理解决方案、重新生成操作,确认文件名非法报错消失
  • 生成成功后打开项目obj/[当前构建配置]/android/values路径,检查是否存在自动生成的google services相关资源文件,存在即说明配置生效。

内容的提问来源于stack exchange,提问作者iamdeed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:51:19