无法使用Android 5.0.2在Galaxy S5上播放录制的脚本。
在IBM MobileFirst Test Workbench中执行先前记录的测试时抛出NoSuchMethodError。
同样的测试在其他Android版本上播放得很好。
按照中描述的步骤进行操作 https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-6-3/advanced-topics/testing-mobilefirst-mobile-applications-mobile-test-workbench/ 我创建了自己的MobileFirst项目,并稍微将index.html更改为:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>hw</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<!--
<link rel="shortcut icon" href="images/favicon.png">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
-->
<link rel="stylesheet" href="css/main.css">
<script>window.$ = window.jQuery = WLJQ;</script>
<script>
function count_rabbits() {
for(var i=1; i<=3; i++) {
alert("Rabbit "+i+" out of the hat!");
}
}
</script>
<script src="js/tracekit.js" type="text/javascript"></script>
<script src="js/MQA.js" type="text/javascript"></script>
</head>
<body style="display: none;">
<!--application UI goes here-->
Hello MobileFirst
<script src="js/initOptions.js"></script>
<script src="js/main.js"></script>
<script src="js/messages.js"></script>
<h2>Press the button to start</h2>
<input type="button" onclick="count_rabbits()" value="Count rabbits!"/>
</body>
</html>
</body>
</html>
我构建了应用程序并将其部署在带有Android 5.0.2的Galaxy S5上。 该应用程序按预期工作。
然后我创建一个Test Workbench项目。 使用我手机上的IBM Rational Test Workben客户端,我上传了我的应用程序,我自己打开它,点击OK三次然后点击,然后停止录制并将其置于测试中。
测试显示,我可以保存它,我可以启动它。
它运行一点,它失败了:
An uncaught exception has been thrown in thread Thread[main,5,main]: NoSuchMethodError: No direct method <init>(Lcom/ibm/rational/test/mobile/android/runtime/webkit/WebViewClientWrapper_rtwrenamed;Ljava/net/HttpURLConnection;Ljava/net/URL;[Ljava/lang/String;Ljava/lang/String;)V in class Lcom/ibm/rational/test/mobile/android/runtime/webkit/WebViewClientWrapper$1; or its super classes (declaration of 'com.ibm.rational.test.mobile.android.runtime.webkit.WebViewClientWrapper$1' appears in /data/app/com.myhw-1/base.apk)
at com.ibm.rational.test.mobile.android.runtime.webkit.WebViewClientWrapper_rtwrenamed.loadRemoteJavascriptsSource(WebViewClientWrapper.java:290)
at com.ibm.rational.test.mobile.android.runtime.webkit.WebViewClientWrapper_rtwrenamed.loadJavaScriptResource(WebViewClientWrapper.java:242)
at com.ibm.rational.test.mobile.android.runtime.webkit.WebViewClientWrapper_rtwrenamed.loadAndInject(WebViewClientWrapper.java:205)
at com.ibm.rational.test.mobile.android.runtime.playback.webkit.RMoTWebDriver$1.run(RMoTWebDriver.java:241)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
我做错了什么?
Windows 7 64位,jdk 1.8.0_77
C:\>java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)
C:\>javac -version
javac 1.8.0_77
Luna与:
Android DDMS 23.0.7.2120684
Android Development Tools 23.0.7.2120684
Android Hierarchy Viewer 23.0.7.2120684
Android Native Development Tools 23.0.7.2120684
Android Traceview 23.0.7.2120684
Eclipse IDE for Java Developers 4.4.2.20150219-0708 epp.package.java null
IBM Dojo Mobile Tools 7.1.0.00-20160321-2138
IBM jQuery Mobile Tools 7.1.0.00-20160321-2138
IBM MobileFirst Platform Studio 7.1.0.00-20160321-2138
IBM MobileFirst Platform Test Workbench 8.7.0.v20160112_2203
Tracer for OpenGL ES 23.0.7.2120684
答案 0 :(得分:0)
见这里:Uploading hybrid app to mobilefirst test workbench fails
这是最新的构建工具版本中出现的一个已知问题
简而言之,RTW使用&#34; dex2jar&#34;和其他实用工具,依赖 在android sdk上。如果sdk进化(例如新的构建工具),这些 工具也必须升级(它们嵌入在RTW中)
最好是将RTW升级到最新版本才能支持 您的sdk版本(请联系IBM支持.RTW 8702可用 和871应该在2015年10月中旬左右生活)
一种解决方法是降级你的&#34;构建工具&#34;在android中 sdk经理到旧版本