将混合应用上传到 mobilefirst 测试 workbench 失败

Uploading hybrid app to mobilefirst test workbench fails

好的,所以我刚刚使用 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 一起工作才能继续我的工作。有任何想法吗? 提前致谢。

这是一个已知问题,出现在最新的构建工具版本中

简而言之,RTW 使用 "dex2jar" 和其他依赖 android sdk 的实用工具。 如果 sdk 发展(例如新的构建工具),这些工具也必须升级(它们嵌入在 RTW 中)

最好将 RTW 升级到最新版本以支持您的 sdk 版本(联系 IBM 支持。RTW 8702 可用,871 应该在 2015 年 10 月中旬左右上线)

解决方法是将 android sdk 管理器中的 "build-tools" 降级到旧版本

杰罗姆·博齐尔

高级软件工程师

IBM RTW 移动版 - Android