解决 Oracle JET 混合移动应用中的常见问题
使用 Oracle JET 部署混合移动应用时,最常见的问题可能是运行时异常、配置错误和网络问题。
问题 1:失败的 ojet 构建
在公司防火墙后工作时,您可能会收到消息,指出您的构建在发出 ojet build
或 ojet0- 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
。