在IBM MobileFirst Test Workbench中执行记录测试时出现NoSuchMethodError

时间:2016-03-28 15:23:55

标签: ibm-mobilefirst

无法使用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三次然后点击,然后停止录制并将其置于测试中。

测试显示,我可以保存它,我可以启动它。

在这里它会有所改变。 enter image description here

它运行一点,它失败了:

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)

The error screen

我做错了什么?

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

1 个答案:

答案 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经理到旧版本