![如何在真实手机上测试 javascript 范围?](https://linux22.com/image/987574/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%9C%9F%E5%AE%9E%E6%89%8B%E6%9C%BA%E4%B8%8A%E6%B5%8B%E8%AF%95%20javascript%20%E8%8C%83%E5%9B%B4%EF%BC%9F.png)
我正在开发我的第一个瞄准镜,希望能参加瞄准镜对决大赛。
我决定制作一个 javascript 作用域。我对 SDK 很感兴趣,并且正在遵循 javascript 作用域教程
https://developer.ubuntu.com/en/scopes/tutorials/developing-scopes-javascript/
我也一直在阅读其他在线文档和 API 页面。
我正在运行 Ubuntu 15.10,并启用了 ubuntu-sdk-ppa-team ppa。我按照指南安装了 SDK,创建了点击目标,安装了 javascript 范围开发工具……一切都按部就班。
我已经开始根据 Ubuntu SDK 提供的 javascript 范围的默认示例开发我的范围。
我的示波器(顺便说一下,它是免费声音示波器)开始工作了。它在桌面上加载和运行得很好。现在我想在我的 Aquaris 手机上试用它,它刚刚更新了新的 OTA9。
当我以 Ubuntu 手机为目标运行示波器时,我得到以下信息:
:-1: 错误:security:policy_groups_safe:freesound:debug:(REJECT)保留策略组‘debug’:不用于生产用途
看来 SDK 为我的示波器添加了一些魔法,以便在 DEBUG 模式下运行。但是,手机似乎不喜欢这样。
在项目的运行设置中四处查看,我发现了一个名为“部署”步骤的选项Enable debug helper
。UbuntuSDK click build
如果我禁用此选项,先前的错误就会消失。据推测,宝贵的调试信息也会消失(我无法验证这一点,因为后面还有另一个错误)。
禁用调试助手后,我尝试再次运行我的项目,以便将其加载到手机中。现在我收到另一个错误:
尚不支持使用自定义 scopelauncher
此后再无任何事件发生。
我注意到该myscope/data/myscope.ini.in
文件的部分中有以下行[ScopeConfig]
:
ScopeRunner =。/node_modules/unity-js-scopes/bin/unity-js-scopes-launcher%S%R
也许这是错误所指的自定义 scoperunner?我尝试删除此行并重新运行项目。它似乎有效,因为 SDK 最终能够将我的范围上传到手机。但是,即使范围已加载,它也不会执行任何操作。
现在我尝试在桌面上再次运行它(没有我从 scope ini 文件中删除的 scoperunner 行),但它也失败了。这次我得到了一些输出:
scoperegistry: 未配置远程注册表,只有本地范围可用 file:///usr/lib/x86_64-linux-gnu/qt5/qml/Ubuntu/Components/Themes/Ambiance/1.2/ButtonStyle.qml:123:5: QML UbuntuShape: 'color' 已弃用。请改用 'backgroundColor'、'secondaryBackgroundColor' 和 'backgroundMode'。file:///usr/lib/x86_64-linux-gnu/qt5/qml/Ubuntu/Components/Themes/Ambiance/1.2/ButtonStyle.qml:135:5: QML UbuntuShape: 'gradientColor' 已弃用。请改用 'backgroundColor'、'secondaryBackgroundColor' 和 'backgroundMode'。 file:///usr/lib/x86_64-linux-gnu/qt5/qml/Ubuntu/Components/Themes/Ambiance/1.2/ButtonStyle.qml:123:5: QML UbuntuShape: 'image' 已弃用。请改用 'source'。file:///usr/share/unity8//ScopeTool.qml:139:23: 无法将 null 分配给 QString 用户代理字符串:“plugin=0.5.5+15.10.20150924-0ubuntu1&release=15.10”无法添加概览范围,找不到 ID:“scopes”调度搜索:“freesound.rgsilva_freesound”“”“scoperunner:unity::ResourceException:无法加载范围 freesound.rgsilva_freesound;已在以下位置尝试:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/x86_64-linux-gnu/libfreesound.rgsilva_freesound.so /home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/x86_64-linux-gnu/freesound.rgsilva_freesound.so /home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/x86_64-linux-gnu/scope.so /home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/libfreesound.rgsilva_freesound.so /home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/freesound.rgsilva_freesound.so /home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/scope.so 异常历史记录: 异常 #1:unity::ResourceException:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/x86_64-linux-gnu/libfreesound.rgsilva_freesound.so:无法打开共享对象文件:没有此文件或目录 异常 #2:unity::ResourceException:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/x86_64-linux-gnu/freesound.rgsilva_freesound.so:无法打开共享对象文件:没有此文件或目录 异常#3:unity::ResourceException:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/x86_64-linux-gnu/scope.so:无法打开共享对象文件:没有此文件或目录异常#4:unity::ResourceException:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/libfreesound.rgsilva_freesound.so:无法打开共享对象文件:没有此文件或目录异常#5:unity::ResourceException:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/freesound。rgsilva_freesound.so:无法打开共享对象文件:没有此文件或目录 异常 #6:unity::ResourceException:/home/ricardo/dev/build-freesound-Ubuntu_SDK_Desktop_Kit-Default/src/scope.so:无法打开共享对象文件:没有此文件或目录 从 create_query() 捕获错误:unity::scopes::MiddlewareException:unity::ResourceException:RegistryObject::ScopeProcess::exec():exec 中止。范围:“freesound.rgsilva_freesound”启动时间超过 4000 毫秒。
因此看起来,为了使范围运行,至少在桌面上,需要 scoperunner 行。
我有点迷茫了。如何才能让我的示波器在桌面和手机上运行?
答案1
感谢您参加摊牌,抱歉回复迟了,
你对“启用调试助手”选项的理解是正确的,如果你遇到上面显示的第一个错误报告,这个选项可以提供帮助,
在单击打包步骤期间,QtCreator 会显示“尚不支持使用自定义 scopelauncher”消息,这突出显示了 QtCreator 在打包调试脚本模式时存在的局限性。不过,这是一个严重的问题,目前还不应该成为阻碍因素,我正在调查核心问题,并将在那里发布后续信息,
*
编辑 尚未合并的 ubuntu sd ide 分支修复了这个问题
https://code.launchpad.net/~zeller-benjamin/qtcreator-plugin-ubuntu/js-scopes-support/+merge/285464
它应该很快就会着陆并恢复正常运转,
*
但是,为了运行 js 范围,您需要在配置文件中存在自定义范围启动器 ScopeConfig 行。
您可以通过进入 QtCreator 项目的“发布”部分并单击“在设备上安装”按钮来在设备上安装点击包(构建后)。