无法在真实设备 android 中运行 IBM worklight 应用程序

Posted

技术标签:

【中文标题】无法在真实设备 android 中运行 IBM worklight 应用程序【英文标题】:Can't run IBM worklight app in real device android 【发布时间】:2013-04-10 09:10:11 【问题描述】:

我构建了一个工作灯应用程序。创建 android 应用程序并使用本地机器测试此应用程序,它在模拟器上工作正常。但是当我尝试使用 android 平板电脑测试此应用程序时,它通过错误“应用程序连接到服务失败”。

我尝试找到 application-descriptor.xml 并将 localhost 修复为 192.168.1.1:8080 我的 ip 本地机器,但它不工作。在我的平板电脑上我不能去192.168.1.1:8080/console/index.html

任何人都可以帮助我解决这个问题。如何在我的 worklight android 应用程序中修复这个并在我的 android 平板电脑上运行它

【问题讨论】:

【参考方案1】:

需要检查的一些事项: - 您的平板电脑和 Worklight 开发机器是否在同一个无线网络上? (他们必须是!) - 您的计算机上是否有防火墙,可能需要配置才能让流量通过。作为测试,您可以暂时禁用防火墙,然后查看您是否可以访问(受禁用防火墙所涉及风险的免责声明)。不禁用防火墙的测试是尝试从同一子网上的另一台台式机/笔记本电脑访问 192.168.1.1:8080。

【讨论】:

不要将标语或签名放在帖子末尾,因为它们会被删除。 感谢您的回答,我有一根网线连接到笔记本电脑并从笔记本电脑共享 wifi 到平板电脑,我的笔记本电脑的 IP 为 192.168.181.1,平板电脑的 IP 为 192.168.220.101,有什么办法将它们固定在同一子网上?【参考方案2】:
    在本地机器 ipconfig 中检查 ip(字段 Adaptador de Ethernet)

    在字段主机名配置服务器中设置此 IP。

    重建

    另一个测试是在同一网络中的其他机器中检查方向。

【讨论】:

【参考方案3】:

在命令窗口中,运行 ipconfig 并复制 IPv4 地址。这是您需要在 application-descriptor.xml 文件中作为 worklightServerRootURL 的值放置的 IP 地址。

您现在使用的 IP 地址在我看来不像您需要使用的正确(公共)IP 地址。试试我上面的建议。

【讨论】:

我使用 cmd 并运行 ipconfig 我看到 ipv4 中的 ip 是 192.168.181.1,但是当我使用 whatismyip.com 时,我看到我的 ip 是 115.73.45.2xx,然后将值设置为 115.73 .45.2xx:8080 但我遇到了同样的错误。我做错了什么?【参考方案4】:

在application-descriptor.xml中添加“192.168.181.1:8080”怎么样?

【讨论】:

是否为该应用程序启动了 Worklight 服务器?【参考方案5】:

我会建议以下调试步骤:

a) 转到您的设备浏览器并浏览到 http: //xx.xx.xx.xx:8080/控制台

-> 如果这不起作用,您有一个明显的 IP 地址问题。然后你必须弄清楚为什么,也许你有一个赛门铁克的东西可以阻止任何传入你桌面的流量 - 他们确实这样做了。您应该明确允许。

b) 如果 a) 有效,那么您需要检查您的代码以确保您的应用在启动时确实尝试连接到服务器。否则应用程序只会在调用适配器时尝试连接。

现在,转到您的代码。打开 initOptions.js 文件。我通常会将 connectOnStartup 设置为 true,但也会启用 onConnectionFailure 以便它在没有连接时脱机运行。

var wlInitOptions =

// # Should application automatically attempt to connect to Worklight Server on application start up
// # The default value is true, we are overriding it to false here.
connectOnStartup : true,

// # The callback function to invoke in case application fails to connect to Worklight Server
onConnectionFailure: function ()wlCommonInit();,

// # Worklight server connection timeout
timeout: 2000,

;

3) 确保 application-descriptor.xml 中有正确的 URL

http://xx.xx.xx.xx:8080

如果您使用的是消费者版(实际购买的 WL),您的 URL 将是。 http://xx.xx.xx.xx:9080/worklight

(注意这些 URL 之间没有空格 - 只是这个网站在有换行符时放了一个空格)

将您的代码重新部署到 WL 服务器并创建一个新的 APK 文件。使用新的 APK 文件更新您的设备。

4) 再次使用控制台进行测试,您应该会看到控制台。点击预览应用链接,它应该可以工作。

5) 现在您已经更新了服务器上的代码和 APK 文件。在设备上再次打开它。

您仍然看到错误消息吗?

如果还是不行的话。

6) 进入应用设置,因为您启用了离线模式,它可以让您访问应用设置(这是 Android 中的第 4 个按钮)进入 Worklight 设置。选择服务器地址 -> 将工作灯 URL 添加到服务器 URL。当您返回应用程序时,这将自动从您的 WL 服务器重新加载内容。

【讨论】:

以上是关于无法在真实设备 android 中运行 IBM worklight 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

用于真实设备的 IBM Worklight SQL 适配器

IBM Worklight 和推送通知问题

在android工作室中没有显示的真实设备[重复]

IBM Worklight - 无法在 Dojo 应用程序中加载 index.html

如何在真实设备中使用离子运行移动应用程序

IBM Worklight Application Center iOS 对触摸事件无响应