疑难解答

本页面包含使用 Survey123 外业应用程序完成调查时出现的已知问题,并提供解决这些问题的建议。

发送错误

如果无法提交已完成的调查,则会出现以下错误:

发送错误消息

在消息框中单击将返回并在提交前对答案进行编辑。 单击将关闭错误消息并返回至发件箱。

下表中列出了一些常见的发送错误:

错误编号错误描述诊断

不符合要素服务要求。supportsApplyEditsWithGlobalIds 必须为 true。

要素图层的 supportsApplyEditsWithGlobalIds 属性未设置为 true。 使用此博客文章中的步骤启用 supportsApplyEditsWithGlobalIds

400

URL 无效

加载表单时指定的要素图层不再存在,原因是方案发生变化,更改为表单。 此错误唯一的解决方案是使用恢复技术手动迁移数据。

498

无效令牌

外业应用程序尝试传递到 ArcGIS 的令牌被拒绝。 通常,出现此错误的原因在于应用程序尝试传递的令牌已过期。 在这种情况下,请重复执行操作,则此错误不会再出现。

1000

字符串或二进制数据被截断

问题结果对于要素图层中的字段过长。 请编辑答案以符合字符限制。

1000

列名“Shape__Extents”无效

要提交的点超出了要素图层的全部范围。 如果此问题反复出现,并且您尝试提交的位置正确,则应该在更大范围内重新发布要素调查。 但是,请注意,这样做会导致您丢失已保存在要素图层中的信息。

1003

Survey123 操作已回滚

如果调查包含数据类型错误的隐藏计算问题,则会出现此错误。 计算的数据类型取决于计算的各个元素的数据类型。 隐藏计算问题的 XLSForm 默认绑定类型为字符串。 要覆盖此默认值,在问题的 bind::type 列输入所需的类型(例如 intdecimal)。

1019

无法更新指定的要素

在不支持重复的 Survey123 外业应用程序版本中尝试发送包含重复的已编辑调查时,可能会发生这种情况。 在版本 2.4 及更高版本的 Survey123 外业应用程序中,支持编辑包含重复的调查。

收件箱错误

可能会出现错误您没有访问此资源或执行此操作的权限。 代码 403(当调查作者以外的用户刷新收件箱时)。 在首次发布调查之前启用收件箱时,默认情况下系统会启用所需的权限。 如果调查作者首先在禁用收件箱的情况下发布了调查并稍后将其启用,则必须在要素图层的设置中启用删除更新,以确保更新所需的权限。

下载地图时,空间参考不受支持

“下载地图”中不支持的空间参考

Survey123 外业应用程序中,尝试将底图下载到设备上时,会显示此消息。 Survey123 要求底图使用 Web 墨卡托辅助球体空间参考。 此空间参考与 Esri 的世界地形底图和其他底图使用的空间参考相同。 如果 Survey123 外业应用程序检测到调查与离线底图相关联,该底图非 Web 墨卡托辅助球体投影或者不正确或缺失,您将收到警告消息。 请注意,在某些情况下,离线底图可能缺少有关空间参考的信息。 在这些情况下,警告消息将指示不存在空间参考。 如果实际底图是使用 Web 墨卡托辅助球体投影构建的,则使用未知(列出为“无”)空间参考的离线底图仍然可以在 Survey123 中正常工作。

自动保存

如果设备或应用程序在您完成调查的过程中崩溃,则调查响应可以恢复。 调查中焦点的任何变化(例如,用户激活新问题)都将触发正在写入 autosave.json 文件的所有之前已完成的问题的内容。 在输入调查的过程中,此文件位于 My Surveys 文件夹中,如果在将调查正确写回到数据库之前,应用程序异常退出,则将使用此文件。

启动时,Survey123 外业应用程序会检查 autosave 文件是否存在。 如果找到该文件,系统将通知您调查响应已恢复,同时显示调查名称和实例名称。

“调查已恢复”对话框

单击放弃调查将删除 autosave.json 文件,同时丢失恢复的数据。 继续调查将打开调查,同时使用恢复的数据填充该调查。 成功完成调查或将其保存为草稿后,将自动删除 autosave.json 文件。

注:

恢复的调查将包括所有之前已完成的问题,崩溃时正在完成的问题除外。 这是因为保存问题的触发因素是焦点变化。

如果您不希望每次开始新问题时都自动保存调查,可以使用 bind::saveIncomplete 列,向调查添加保存里程碑。 针对想要触发保存的每个问题,将值设置为 true。 可将 bind::saveIncomplete 列应用于以下问题类型:

  • 文本
  • 转为整型
  • 时间
  • 日期
  • 日期时间
  • Select multiple
  • Select one

启用诊断日志记录

如果您遇到未在本主题中列出的错误消息或其他异常行为,则从 Survey123 外业应用程序记录信息日志非常有用,以便与其他人(例如 Esri 技术支持工作人员)共享以解决问题。

要启用日志记录,请打开应用程序主页上的菜单,单击设置,然后单击诊断选项卡。

外业应用程序中的日志记录

要将消息捕获到文件中,请单击日志记录切换按钮以启用日志记录。 将使用默认日志文件位置自动填充日志输出位置选项。 您可以编辑此文件路径。 要在线将消息捕获至兼容 syslog 的控制台,请在日志输出位置文本框中,而非日志文件位置中输入其 URL。

可以共享日志文件,也可以通过电子邮件发送日志文件。 如果您选择在应用程序中通过电子邮件发送日志,则应用程序版本号、操作系统名称和系统区域设置将包含在电子邮件正文中,日志将作为附件包含在内。

注:

对于实时日志记录,诊断选项卡将显示在网络中打开的所有 AppStudio 控制台实例。 找到正在运行的 AppStudio 控制台前,诊断选项卡将始终显示一个搜索圆形符号。 如果您首先选择 AppStudio 控制台,然后单击日志记录切换按钮以启用日志记录,则日志记录信息将显示在该控制台中。 有关详细信息,请参阅 ArcGIS AppStudio 帮助中的捕获控制台输出

使用桌面外业应用程序恢复数据

有时,因为无法连接无线 Internet,或者设备或服务器数据库出现异常问题,您可能无法通过移动设备发送调查。

调查数据将作为 .sqlite 数据库存储在移动设备中。 可以复制和编辑此数据库以协助数据恢复。

如果移动设备与 Internet 的连接出现问题,您可以将 .sqlite 数据库复制到桌面上,在桌面版本 Survey123 外业应用程序中将其打开,然后发送调查。

在开始以下步骤之前,请将您正试图从中恢复结果的调查下载到您的桌面版本 Survey123 外业应用程序中。

  1. 从设备中复制 .sqlite 文件。
    注:

    如果您使用的是 iOS 设备,将需要使用 iOS 文件浏览器应用程序。在 macOS 10.15 Catalina 或更高版本中,可以使用 Finder 作为文件浏览器。 在较早版本的 macOSWindows 中,可以使用 iTunes 或其他文件浏览器应用程序。 此文件自动存储在 Survey123/ArcGIS/My Surveys/Databases 中。

    如果您使用的是 Android 设备,则文件将自动存储在 Android/data/com.esri.survey123/files/ArcGIS/My Surveys/Databases 的应用程序特定的存储位置。 在 Survey123 版本 3.12 之前,文件存储在 ArcGIS/My Surveys/Databases 的内部存储位置。

  2. 将此 .sqlite 文件粘贴到桌面上等效 Survey123 文件夹中(例如,在 Windows 上应为 C:\Users\<username>\ArcGIS\My Surveys\Databases)。
    注:

    如果已在桌面上采集调查,则可能已存在数据库。 如果出现了上述情况,可以将其保存到子文件夹中,或者重命名数据库文件夹并为复制文件创建一个文件夹。 如果需要发送的调查未完成,则可以安全地删除桌面上的现有数据库。

  3. 如果调查具有图像、音频或文件问题,也请将您设备中的我的调查附件文件夹复制到桌面。
  4. 打开 Survey123 外业应用程序,转至设置 > 高级,然后单击修复数据库按钮。
  5. 浏览至您的调查,确认存在可发送的调查。
  6. 发送您的调查。

使用桌面外业应用程序和对数据库的手动编辑来恢复数据

有时,修复数据库工具可能无法恢复数据,或者数据库可能存在其他问题。 在这些情况下,还可以手动修改存储在 .sqlite 数据库中的路径。

以下步骤介绍了如何手动修改 .sqlite 数据库。

    在开始这些步骤之前,请将您正试图从中恢复结果的调查下载到您的桌面版本 Survey123 外业应用程序中。
  1. 从设备中复制 .sqlite 文件。 此文件位于 ArcGIS/My Surveys/Databases
  2. 将此 .sqlite 文件粘贴到桌面上等效 Survey123 文件夹中(例如,在 Windows 上应为 C:\Users\<username>\ArcGIS\My Surveys\Databases)。
  3. 在数据库编辑器中打开 .sqlite 数据库。 示例编辑器为 DB Browser for SQLite
  4. 如果使用 DB Browser for SQLite,请查看浏览数据选项卡上的路径列。 可以看出每个记录表示一个完成的调查,并且包含设备(在该设备上采集数据)的路径引用。 要发送桌面上的调查,需要更改路径,以与桌面的调查数据路径相匹配。
  5. 要更改记录,请转至执行 SQL 选项卡,然后使用您自己的本地路径详细信息输入以下内容:

    UPDATE Surveys SET path = REPLACE (path,"/sdcard", "C:/Users/Me") where path LIKE "/sdcard%"

  6. 返回至浏览数据选项卡,然后确认路径已发生更改。
  7. 关闭 SQLite 应用程序。
  8. 打开 Survey123 外业应用程序,确认现在存在若干个可发送的调查(调查缩略图拐角位置处应包含红色编号)。
  9. 发送您的调查。