跳到主要内容

常见问题2

1. 如果 GitHub 示例的设备类型与我的设备不匹配,我可以使用它吗?

可以,您可以部分使用它,但请记住以下几点:

设备应用程序由两个主要部分组成:

  1. 应用程序代码(通常在 src 目录中)
    这部分由 JavaScript 逻辑和资源文件组成,与设备无关,可以在任何设备上运行。

  2. 模块代码(通过 install 下载到 dxmodules 目录)
    这包括两种类型的内容:

    • JavaScript 模块代码(通常通用)
    • 从 C/C++ 编译的 .so 动态库(高度依赖设备架构

因此:

  • JS 代码是通用的,可以在不同设备上运行而无需修改
  • .so 文件必须在目标设备上重新安装和生成,不同设备之间的模块版本可能不兼容。
  • 某些模块是设备特定的(例如,dxNetwork 仅适用于具有网络功能的设备)。
  • 与屏幕相关的代码需要根据设备的屏幕大小或是否有屏幕进行适配或裁剪。

2. 为什么我的设备在运行某些 GitHub 示例时会自动重启?

这是因为某些示例启用了看门狗机制

这些示例应用程序来自生产环境,通常集成"看门狗"逻辑以确保稳定性: 如果系统在特定时间内(通常为 20 秒)未检测到应用程序的"喂狗"行为,它将自动重启设备以防止应用程序长时间无响应。

在调试期间(例如,使用 VSCode),频繁重启/中断应用程序可能会被系统误解为"崩溃的应用程序",从而触发重启。

解决方案:

  • 在示例代码中临时注释掉看门狗逻辑
  • 大多数 GitHub 示例默认不启用看门狗机制,通常不会受到影响。

3. 为什么我在运行时收到".so 文件未找到"错误,即使它在 dxmodules 目录中并已同步到设备?

这是因为 .so 文件与设备型号紧密绑定,项目配置不匹配会导致它无法加载。

具体原因如下:

  • 您的设备型号是 A。
  • 但项目配置文件 app.dxproj 中选择的设备型号是 B。
  • 当您运行 install 时,下载的 .so 文件是为设备 B 编译的。
  • 您将此 .so 文件同步到设备 A。
  • 由于不匹配,设备 A 无法加载此 so 文件,导致运行时出现".so 文件未找到"错误。

解决方案: 请确保项目配置中的设备型号与您的实际设备匹配。然后,重新选择模块版本,运行 install 下载与正确设备型号兼容的模块和 .so 文件,最后将它们同步到设备。


4. 为什么我的开发设备重启后卡在启动屏幕,没有应用程序运行?

这是正常的。原因如下:

  • 开发设备默认为开发模式,其中系统不会自动启动任何应用程序
  • 此时,设备界面可能停留在启动屏幕或显示空白。

如何运行应用程序?

  1. 使用 VSCode 将应用程序代码同步到设备。
  2. 在 VSCode 中点击"运行"以启动您的应用程序并查看其运行情况。

如果我希望应用程序在启动时自动启动怎么办?

将设备切换到**生产模式**。

  • 在生产模式下,系统将在启动时自动加载并运行已安装的应用程序。