将混合应用程序上传到 mobilefirst 测试工作台失败
Posted
技术标签:
【中文标题】将混合应用程序上传到 mobilefirst 测试工作台失败【英文标题】:Uploading hybrid app to mobilefirst test workbench fails 【发布时间】:2015-09-08 15:28:23 【问题描述】:好的,我刚刚使用 MobileFirst 插件(版本 7.1.0)为 Eclipse Luna 4.4.2 创建了一个 HelloWorld 混合应用程序,然后我想使用 MobileFirst Platform Test Workbench(版本 8.7)对其进行测试。 我将应用程序部署到我的 android 设备 (5.0.1) 上,然后我想使用 IBM Rational Test Workbench 移动应用程序上传它。我的设备已正确链接,但出现以下错误:
!ENTRY com.ibm.rational.test.lt.models.behavior.moeb 1 0 2015-09-08 17:03:55.746
!MESSAGE CRRTWM6013I from component Android-BuildChain: configuration: cache.dir=C:\Users\IBM_ADMIN\Documents\Luna Workspace\.metadata\.plugins\com.ibm.rational.test.lt.models.behavior.moeb\cache, android.runtime.dir=C:\Users\IBM_ADMIN\Desktop\eclipse\plugins\com.ibm.rational.test.mobile.android.runtime_1.4.103.v20150415_1441, ibm.jdk.install.dir=C:\Program Files\Java\jdk1.7.0_79, android.sdk.install.dir=C:\Users\IBM_ADMIN\AppData\Local\Android\sdk, runtime.cache.dir=C:\Users\IBM_ADMIN\Documents\Luna Workspace\.metadata\.plugins\com.ibm.rational.test.lt.models.behavior.moeb\builds\runtimes
!ENTRY com.ibm.rational.test.lt.models.behavior.moeb 4 0 2015-09-08 17:03:58.507
!MESSAGE CRRTWM6012E exception thrown from component Android-BuildChain while building from '0-base.apk'
!STACK 0
brut.androlib.AndrolibException: Could not decode arsc file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:70)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:598)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:123)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:114)
at brut.androlib.Androlib.getResTable(Androlib.java:68)
at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
at com.ibm.rational.test.mobile.android.buildchain.tools.apktoolwrapper.ApkToolWrapper.decode(ApkToolWrapper.java:107)
at com.ibm.rational.test.mobile.android.buildchain.AndroidBuildChain.build(AndroidBuildChain.java:190)
at com.ibm.rational.test.lt.models.behavior.moeb.utils.BuildChainManager$Build.run(BuildChainManager.java:201)
at java.lang.Thread.run(Thread.java:857)
Caused by: java.io.IOException: Expected: 0x00000008, got: 0x00000003
at brut.util.ExtDataInput.skipCheckShort(ExtDataInput.java:64)
at brut.androlib.res.decoder.ARSCDecoder.readValue(ARSCDecoder.java:266)
at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:219)
at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:205)
at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:163)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:132)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:101)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:63)
... 10 more
!ENTRY com.ibm.rational.test.lt.models.behavior.moeb 4 0 2015-09-08 17:03:58.507
!MESSAGE CRRTWM6010E exception thrown while building from '0-base.apk'
!STACK 0
java.lang.Error: Apktools decode failed
at com.ibm.rational.test.mobile.android.buildchain.AndroidBuildChain.build(AndroidBuildChain.java:191)
at com.ibm.rational.test.lt.models.behavior.moeb.utils.BuildChainManager$Build.run(BuildChainManager.java:201)
at java.lang.Thread.run(Thread.java:857)
我尝试了几种使用不同 sdk 和不同 jre 的不同选项,但我迫切需要让它与 API 21 和 JRE 7 一起工作以继续我的工作。有任何想法吗? 提前致谢。
【问题讨论】:
【参考方案1】:这是一个已知问题,出现在最新的构建工具版本中
简而言之,RTW 使用“dex2jar”和其他依赖于 android sdk 的实用工具。 如果 sdk 进化(例如新的构建工具),这些工具也必须升级(它们嵌入在 RTW 中)
最好将 RTW 升级到最新版本,以便能够支持您的 sdk 版本(请联系 IBM 支持人员。RTW 8702 可用,871 应该在 2015 年 10 月中旬左右上线)
解决方法是将 android sdk 管理器中的“构建工具”降级为旧版本
杰罗姆·博齐尔
高级软件工程师
IBM RTW 移动 - Android
【讨论】:
这个会发布吗?从 7 月开始,当前版本仍然是 8.7.0。 871 从 9 月或 10 月开始上线。它包括你需要的东西 它不能通过 Eclipse Marketplace 或 public.dhe.ibm.com/ibmdl/export/pub/software/products/en/MobileFirstPlatform/ 获得 好吧,我的错,您使用的是 MobileFirst 而不是独立的 RTW。您应该联系我们的支持以获得最新版本(我不知道 MobileFirst 的发布计划,其中包括几个带有 RTW 的产品)以上是关于将混合应用程序上传到 mobilefirst 测试工作台失败的主要内容,如果未能解决你的问题,请参考以下文章
IBM MobileFirst 混合应用程序客户端服务器设置
IBM MobileFirst Platform 未在 iOS 上为混合应用程序触发远程禁用消息