无法在 android 设备中测试应用程序
Posted
技术标签:
【中文标题】无法在 android 设备中测试应用程序【英文标题】:unable to test application in android device 【发布时间】:2015-05-04 19:45:01 【问题描述】:我正在使用 IBM MobileFirst Plaform 开发一个移动应用程序。
当我在浏览器、移动模拟器和安卓模拟器中测试应用程序时,应用程序运行正常。当我在我的 android 设备中部署 apk 文件并运行时,应用程序没有运行。当我检查 logcat 时,出现以下错误。
I/Web 控制台(20334):processMessage 失败:消息:F09 WLAuthorizationManagerPlugin1268447688 "wlFailureStatus":"UNRESPONSIVE_HOST","status":500,"responseText":"","statusText":"的 服务目前不可用。" at file:///android_asset/www/default/worklight/cordova.js:1063
我的笔记本电脑和手机都连接到同一个 wifi 网络
【问题讨论】:
【参考方案1】:您的服务器可能设置为“localhost”。
-
在 Eclipse 中打开服务器视图
双击“MobileFirst Development Server”
将主机值更改为您机器的 IP 地址(如果您有多个 IP 地址,请确保使用正确的一个)
重新启动服务器(应在保存步骤 3 中的更改后自动发生)
通过右键单击应用程序文件夹 > 运行方式 > 在 MobileFirst 开发服务器上运行来重新构建应用程序(这确保设置的 IP 地址将传播到项目的 wlclient.properties 文件)
从设备中删除应用程序
重新安装新生成的应用程序(从第 5 步开始)
验证应用程序现在是否能够连接到 MFP 服务器。
【讨论】:
D/wl.request(28874): WLRequestSender.run in WLRequestSender.java:40 :: 发送请求192.168.100.16:10080/CustomLoginModule/authorization/v1/clients/… D/dalvikvm(28874): GC_CONCURRENT 释放 5784K,41% 释放 8825K/14844K , 暂停 6ms+4ms, 总计 59msD/wl.certManager(28874): WLCertManager.clearKeystore in WLCertManager.java:258 :: Key store clear. D/NONE(28874): 客户端注册失败,出现错误:"status":500,"responseHeaders":,"responseText":"","invocationContext":null E/NONE(28874): [/apps/services /api/CustomLoginModule/android/query]failure.state:500, response:undefined 您的移动设备是如何连接到网络的?通过 WiFi(在您自己的网络上),还是使用移动运营商的数据网络?如果您使用的是移动运营商的数据网络,您将无法联系到非公共 IP 地址“192.168.100.16”。 如果移动设备通过 WiFi 连接(连接到您的网络,IP 地址为“192.168.100.xxx”),请检查主机防火墙(如 Linux 上的“iptables”) 、Windows 防火墙(如果您使用的是 Windows 系统等)正在阻止从外部主机到端口 10080 的传入流量。 您好,我正在通过 wifi 网络连接它,我的笔记本电脑的 ip 是 192.168.100.16,我的手机中的 ip 是 192.168.100.28 而且我能够在一周前以同样的方式连接突然间我开始面临这个问题 @GopiNath 已尝试在移动浏览器中打开 MFP 控制台 [192.168.100.16:10080/worklightconsole]【参考方案2】:您是否检查了本机 android 文件夹中的 wlclient.properties 文件? 在该文件中检查 wlserverhost 和 wlserver 端口。在此之前,如果您将应用程序部署到任何远程服务器,则应为 android 环境配置 IP 地址和端口号。 通过取消选中构建应用程序以使用不同的移动优先服务器来更改该 IP 地址和端口号... 将应用程序重新构建到本地移动优先服务器..
【讨论】:
【参考方案3】:月食月食 4.4.0 和 WORKLIGHT 6.3
function wlCommonInit()
//set url de conexion para Android
var environment = WL.Client.getEnvironment();
if (environment == WL.Environment.ANDROID)
WL.App.setServerUrl("https://<SERVER>: <PORT>/<contextPATH>",setServerURLSuccess, setServerURLFailure);
........
;
并创建两个方法
function setServerURLSuccess()
// Display the newly set server URL.
//alert(getServerURL());
function setServerURLFailure()
WL.SimpleDialog.show(
"Change Server URL", "Failed setting Server URL",
[
text: "Close", handler: function()
]
)
谢谢!!!
【讨论】:
以上是关于无法在 android 设备中测试应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在设备上从 github 测试构建的 android 应用程序?