排查问题

在开发与应用有关的 Action 时,您可能会遇到设置或与应用有关的 Action 测试工具方面的问题。本页将介绍一些常见问题以及对应的解决方法。

常规错误

错误:“未找到用于打开网址的应用”(出现在消息框通知中)

检查 actions.xml 中的执行方式 urlTemplate 是否配置正确。如果使用的是 App Links 网址,请确保您可以使用 ACTION_VIEW 和相应网址手动触发您的网址。如果使用的是基于 intent 的网址,请确保您的 activity 已正确配置为开始使用提供的参数。

错误:“应用尚未安装”

如果您收到此错误,可能意味着 AndroidManifest.xml 文件中的 <intent-filter> 没有过滤您在 actions.xml 中指定的深层链接。在提交 bug 之前,请务必先检查此问题。

错误:“An entity set reference containing neither an entity set ID nor a URL filter was found.”(出现在 Android Studio 中)

这种情况是由 <entity-set-reference> 标记的已知 linter 问题引起的。您可以放心忽略此消息。如需解决此问题,您可以向该标记添加 tools:ignore="ValidActionsXml" 属性,为其停用 lint 检查。

以下示例展示了一个已停用 lint 检查的 entity 集引用:

<entity-set-reference entitySetId="example" tools:ignore="ValidActionsXml" />

错误:“位置无效”(上传 APK 时,针对操作架构文档显示)

如果您使用了影响发布版 APK 资源的混淆或优化工具,可能会导致 APK 上传失败。ProGuard 等绕过资源文件的工具不会导致此问题。

如需解决此问题,请尝试为应用的 actions.xml 文件停用该工具(例如,使用许可名单)。

错误:“有效的 APK 或 Android App Bundle 包含 actions.xml 文件。要继续操作,请接受《Actions on Google 服务条款》。”(出现在 Google Play 管理中心内)

在 Play 管理中心内创建应用版本时,您可能会看到此错误。如需接受《Actions on Google 服务条款》,请按以下步骤操作:

  1. 在 Play 管理中心内选择您的应用。
  2. 依次点击设置 > 高级设置
  3. 点击 Actions on Google 标签页。
  4. 勾选标有使用 Actions on Google 将我的服务与 App Action 集成的复选框,然后按照说明操作。

《Play 服务条款》表单上的“接受”按钮遭到停用。

这可能意味着登录的用户不具备接受这些条款所需的访问权限级别。请务必让 Play 管理中心相关个人资料的管理员完成首次提交。

与应用有关的 Action 测试工具

在尝试以下任一解决方法之前,请将您安装的与应用有关的 Action 测试工具更新到最新版本。

与应用有关的 Action 测试工具插件找不到我的 actions.xml 文件。

确保您已在 AndroidManifest.xml 文件中添加正确的 <meta-data> 标记。

与应用有关的 Action 预览与当前 actions.xml 文件不符。

预览不会根据 actions.xml 文件的内容自行动态更新。因此,当您手动更改 actions.xml 文件或在 Android Studio 中切换 build 变体后,请保存 actions.xml 文件,然后在测试工具中点击 Update Preview

与应用有关的 Action 测试工具插件已停止运行或生成错误。

首先,请确保您已将 Android Studio 更新到最新版本。如果您收到的是 403 错误,也可能是因为您在没有运行权限的软件包上运行该插件。

如果错误仍然存在,请提交 bug 并向 Google 发送以下详细信息:

  • 错误对话框中显示的详细信息
  • Android Studio 日志。只需依次选择 Help > Show Log in Finder,界面中即会显示 idea.log 在您 Finder 中的位置。在该日志文件中,搜索“Submit Actions Request Body:”,并粘贴服务器响应(应有两条操作结果)。

与应用有关的 Action 测试工具生成 UnknownHostException 或其他网络连接错误

与应用有关的 Action 测试工具会创建与应用有关的 Action 的预览,让您能通过单个 Google 账号测试 Google 助理集成。测试工具需要连接到互联网,必要时还需具备对 Google 域名的代理访问权限,才能创建这类预览。

若要解决运行测试工具时出现的网络问题,请检查以下常见问题:

  • 在生成预览之前,确保您已连接到互联网。
  • 如果您已连接到互联网,并且您的本地网络使用代理服务器,请执行以下检查:

    • 验证 IDE 代理配置。如需了解详情,请参阅适用于 Android StudioIntelliJ 的代理配置说明。
    • 如果您的代理需要使用访问控制列表 (ACL),请更新 ACL 以允许使用以下网址格式:https://actions.googleapis.com/**

使用测试插件调用与应用有关的 Action 时,Google 助理说“Sorry, I couldn't find that”。

这条响应可能会因各种原因显示,具体取决于您的设置。请尝试采取以下措施:

  1. 使用同一个 Google 账号登录 Android Studio、Play 管理中心和测试设备。
  2. 启用设备数据同步
  3. 将设备和 Google 助理的语言设为 en-US
  4. 检查 Google Play 管理中心内相关应用的软件包名称是否与测试应用中的软件包名称一致。
  5. actions.xml 文件的执行方式 urlTemplate 定义中,确保 android:hostandroid:scheme 的值与 AndroidManifest 文件中声明的值一致。
  6. 从测试设备中移除您的应用所有以前的安装版本,然后安装新的 build。
  7. 从与应用有关的 Action 测试工具中删除预览,然后重新创建新的预览。
  8. 在 Logcat 工具中检查与 Google 助理的执行方式相关的失败问题。您应该会看到为您应用启动的 intent。
  9. 为账号启用“您设备中的应用信息”设置
  10. 打开 Google 助理,确保已完成设置。(设置进度条通常会以蓝色指示条的形式显示在屏幕底部,但在某些情况下外观可能会有所不同。)
  11. 在使用 Google 助理触发与应用有关的 Action 时,确保调用名称和与应用有关的 Action 测试工具创建的预览相符。
  12. 尝试使用文本输入,而不是语音输入,以避免任何转录错误。
  13. 配置测试 build,让 applicationId 与上传到 Google Play 管理中心的 APK 或 AAB 完全一致。请注意,可选的 applicationIdSuffix 属性可以为某些产品变种和 build 变体更改 build 的最终 applicationId。在此示例中,模拟产品变种的 applicationIdcom.example.android.architecture.blueprints.master.mock,而不是 com.example.android.architecture.blueprints
  14. 将预览配置为使用唯一调用名称。请尝试使用唯一字词,以降低与其他应用发生冲突的可能性。
  15. 若要在对可共享代码库进行问题排查时找出问题,请尝试运行与应用有关的 Action 健身应用示例,确保该健身应用可端到端地正常运行,然后逐步在此应用的基础上添加其他功能,看看能否重现问题。
  16. 如果使用的是 G Suite 账号,请确保 Google 助理是由管理员开启的。如需解决此问题,建议您创建一个非 G Suite 测试账号,并将该账号设置为通过 Play 商店获得许可的测试人员账号。测试人员应该可以通过这个账号为自己的应用创建预览,并在其设备上使用它成功运行测试。
  17. 如果您将 Google 助理作为单独的应用下载,请尝试在相关设备上强行停止该应用。您通常可以通过手机的“设置”应用强行停止应用。
  18. 如果上述措施均不起作用,请在与应用有关的 Action 问题跟踪器中报告问题。