解决 Oracle JET 混合移动应用中的常见问题

使用 Oracle JET 部署混合移动应用时,最常见的问题可能是运行时异常、配置错误和网络问题。

问题 1:失败的 ojet 构建

在公司防火墙后工作时,您可能会收到消息,指出您的构建在发出 ojet buildojet0- serve 命令后失败。

如果位于公司防火墙后面,请验证是否已正确配置 npm 代理设置。

问题 2:无法在移动操作系统仿真器中启动混合移动应用程序

您可以成功构建混合移动应用,但稍后会发现您无法在移动操作系统仿真器中进行测试。

例如,控制台日志可能显示应用程序挂起时处于永久“等待”状态:

Running "serve" task
Running "customServe" task
Invoking cordova serve
Static file server running on: http://localhost:8090 (CTRL + C to shut down)Invoking cordova run
Starting watch
Running "watch" task
Waiting...

在启动仿真器之前执行 ojet serve 命令时,此问题很常见。尽管 ojet 尝试启动仿真器,但有些命令在仿真器启动时可能无法执行。要避免此问题:

  • 始终先启动模拟器。

  • 不要为 ojet serve 命令指定目标参数。应用程序将部署到打开/默认仿真器。

  • 启动仿真器后,执行 ojet serve 命令。

  • 确保在执行 ojet serve 命令之前已执行 ojet build

问题 3:调试时遇到 CORS 问题

有时,您的应用无法连接到任何移动中间件(如 Oracle Mobile Hub ),也无法在使用模拟器实时调试器时执行验证。

要防止这种情况发生,请在部署应用程序时使用 ojet --no-livereload 参数禁用实时重新加载功能:

ojet serve --platform=android   --no-livereload=true

问题 4:LiveReload 在物理设备上不起作用

无法向启用了 LiveReload 的设备提供服务是一个已知问题。

要避免此问题,请使用 --browser 标志在浏览器中开发应用程序内容:

ojet serve android --browser

然后,在仿真器中使用 LiveReload。请注意,仿真器上的此过程比实际设备上的慢:

ojet serve 

要使用物理设备进行测试,必须禁用 LiveReload:

ojet serve android --device --no-livereload

注意:

要查看 ojet serve 命令可用的所有选项的列表,请输入 ojet help serve