2014-11-24 51 views
6

試圖在Nexus 7與棒棒堂使用的咖啡(即GoogleInstrumentationTestRunner)運行與UI相關的代碼測試提供了以下錯誤:使用Lollipop(Android 21)使用Espresso有什麼解決方法嗎?

java.lang.IllegalStateException: This message cannot be recycled because it is still in use. at android.os.Message.recycle(Message.java:279) at com.google.android.apps.common.testing.ui.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:468) at com.google.android.apps.common.testing.ui.espresso.base.UiControllerImpl.loopMainThreadUntilIdle(UiControllerImpl.java:337) at com.google.android.apps.common.testing.ui.espresso.ViewInteraction$1.run(ViewInteraction.java:94) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

這顯然是一個known issue for several months但既然已經有no commits since January 8目前還不清楚是否會有官方解決方案。

沒有在規定

Just removing message.recycle(); seems to fix it...

這是一個有效的解決辦法話題評論?如果沒有,那麼正確的解決方案是什麼?

回答

5

UPDATE:使用咖啡2.0棒棒糖支持 https://code.google.com/p/android-test-kit/wiki/EspressoSetupInstructions

是的,如果刪除 「message.recycle();」 並重建它會解決這個問題。

Espresso團隊在GTAC上宣佈,Espresso的下一個版本將會在AOSP中耗時太久。在這裏看到的視頻:https://www.youtube.com/watch?v=aHcmsK9jfGU

(我是這個問題的樓主你參考)

UPDATE:

// you will want to keep it for older API versions 
if (SDK_INT < 21){ 
    message.recycle(); 
} 

+0

謝謝!很高興你可以在7月1日之後重新回答你的原始帖子。 – Jedidja 2014-11-25 13:11:48

+0

感謝你發佈該視頻的鏈接。 – Jedidja 2014-11-25 13:15:15

+0

嘿,我卡住了,你的答案似乎解決了我的問題。 從哪個類我需要刪除recycle()方法? – Patrick 2014-12-22 12:25:28

相關問題