2014-06-12 58 views
0

我正在使用Robotium測試此Android應用程序的一部分,它允許用戶在畫布上進行塗鴉。筆劃以java.util.List的形式存儲爲SVG元素(自定義類)。我通過solo.drag模擬了線條繪製手勢,並在繪製之前和繪製之後打印兩個位圖的Generation ID。生成ID彼此不同,這意味着位圖已被修改。但SVG元素列表爲空(我在下面的代碼片段的倒數第二行得到了NullPointerException)。這是怎麼回事?Robotium:SVG/Bitmap NullPointerException錯誤

以下是代碼:

Bitmap testBitmap = (([package.name].MainActivity) solo.getCurrentActivity()).getPaintView().getBitmap(); 
int emptyBitmapGenID = testBitmap.getGenerationId(); 
Log.d(this.getClass().getName(), ""+emptyBitmapGenID); 

solo.drag(strokeFromX, strokeToX, strokeFromY, strokeToY, strokeStepCount); 
solo.clickOnScreen(10, 10); //To release the touch 

int strokedBitmapGenID = testBitmap.getGenerationId(); 
Log.d(this.getClass().getName(), ""+strokedBitmapGenID); 

solo.waitForActivity(MainActivity.class); 
List<[package.name].SVG.SVG_Element> elementList = (([package.name].MainActivity) solo.getCurrentActivity()).getRenderManager().getCurrDisplayList(false); 

if(elementList==null) 
{ 
    Log.d(this.getClass().getName(), "SVG element list null!"); 
} 

Log.d(this.getClass().getName(), ""+elementList.toString()); 
[package.name].SVG.SVG_Stroke stroke = ([package.name].SVG.SVG_Element)elementList.get(0); 
Log.d(this.getClass().getName(), stroke.toString()); 

產生這一問題的只有一些時代。以下是運行良好時的日誌:

06-19 11:22:43.210: D/[package.name].test.Utils(11520): 31 
06-19 11:22:46.435: D/[package.name].test.Utils(11520): 41 
06-19 11:22:46.435: D/[package.name].test.Utils(11520): [<g class='stroke' id='520c7ff6-1800-4f0c-a544-8be164a6eeca' transform='matrix(1.0,0.0,0.0,1.0,0.0,0.0)'><path d='M 255.40 138.30 L 259.39 143.62 L 263.38 148.94 L 267.37 154.26 L 271.36 159.57 L 275.35 164.89 L 279.34 170.21 L 283.33 175.53 L 287.32 180.85 L 291.31 186.17 L 295.30 191.49 L 299.29 196.81 L 303.29 202.13 L 307.28 207.45 L 311.27 212.77 L 315.26 218.09 L 319.25 223.40 L 323.24 228.72 L 327.23 234.04 L 331.22 239.36 L 335.21 244.68 L 339.20 250 L 343.19 255.32 L 347.18 260.64 L 351.17 265.96 L 355.16 271.28 L 359.15 276.60 L 363.14 281.91 L 367.13 287.23 L 371.13 292.55 L 375.12 297.87 L 379.11 303.19 L 383.10 308.51 L 387.09 313.83 L 391.08 319.15 L 395.07 324.47 L 399.06 329.79 L 403.05 335.11 L 407.04 340.43 L 411.03 345.74 L 415.02 351.06 L 419.01 356.38 L 423.00 361.70 L 426.99 367.02 L 430.98 372.34 L 434.97 377.66 L 438.97 382.98 L 442.96 388.30 L 446.95 393.62 L 450.94 398.94 L 454.93 404.26 L 458.92 409.57 L 462.91 414.89 L 466.90 420.21 L 470.89 425.53 L 474.88 430.85 L 478.87 436.17 L 482.86 441.49 L 486.85 446.81 L 490.84 452.13 L 494.83 457.45 L 498.82 462.77 L 502.81 468.09 L 506.81 473.40 L 510.80 478.72 L 514.79 484.04 L 518.78 489.36 L 522.77 494.68 L 526.76 500 L 530.75 505.32 L 534.74 510.64 L 538.73 515.96 L 542.72 521.28 L 546.71 526.60 L 550.70 531.91 L 554.69 537.23 L 558.68 542.55 L 562.67 547.87 L 566.66 553.19 L 570.65 558.51 L 574.65 563.83 L 578.64 569.15 L 582.63 574.47 L 586.62 579.79 L 590.61 585.11 L 594.60 590.43 L 598.59 595.74 L 602.58 601.06 L 606.57 606.38 L 610.56 611.70 L 614.55 617.02 L 618.54 622.34 L 622.53 627.66 L 626.52 632.98 L 630.51 638.30 L 634.50 643.62 L 638.49 648.94 L 642.49 654.26 L 646.48 659.57 L 650.47 664.89 ' stroke='black' stroke-width='6' fill='none' stroke-linejoin='round' stroke-linecap='round' stroke-opacity='1'/></g>] 
+0

你可以添加logcat的輸出嗎? –

+0

我已經在問題描述本身中添加了logcat輸出。正如我在那裏提到的,這個問題很少出現,大多數時候代碼都能正常工作。 – purplegrunge

回答

1

將Robotium更新到版本5.2.1後,此問題得到解決。我以前一直在使用5.0.1版本。