Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IllegalStateException when inflating layout with support library 24 #2578

Closed
st1hy opened this issue Jul 21, 2016 · 6 comments
Closed

IllegalStateException when inflating layout with support library 24 #2578

st1hy opened this issue Jul 21, 2016 · 6 comments
Labels

Comments

@st1hy
Copy link

st1hy commented Jul 21, 2016

Description

Since updating support library from 23.4 to 24.1 (on 24.0 I had similar issue) some of my previously working tests fail when activity starts. It happens during RecyclerView item inflation. I cannot pinpoint exactly what causes it, I have similar layout hierarchy in 3 activities: IngredientsActivity, TagsActivity and OverviewActivity: DrawerLayout -> CoordinatorLayout -> FrameLayout -> RecyclerView. Views that are inflated are similar with root view HorizontalScrollView. In 2 out 3 activities: OverviewActivity and IngredientsActivity inflation fails.

Stacktrace when Robolectric config sdk = 22

java.lang.IllegalStateException: Layout state should be one of 100 but it is 10

    at android.support.v7.widget.RecyclerView$State.assertLayoutStep(RecyclerView.java:10477)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3277)
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3080)
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3518)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
    at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
    at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1319)
    at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:817)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1191)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at org.robolectric.shadows.ShadowMessageQueue.dispatchMessage(ShadowMessageQueue.java:144)
    at org.robolectric.shadows.ShadowMessageQueue.access$100(ShadowMessageQueue.java:30)
    at org.robolectric.shadows.ShadowMessageQueue$1.run(ShadowMessageQueue.java:105)
    at org.robolectric.util.Scheduler$ScheduledRunnable.run(Scheduler.java:335)
    at org.robolectric.util.Scheduler.runOneTask(Scheduler.java:237)
    at org.robolectric.util.Scheduler.advanceTo(Scheduler.java:218)
    at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:201)
    at org.robolectric.util.Scheduler.setIdleState(Scheduler.java:78)
    at org.robolectric.util.Scheduler.unPause(Scheduler.java:112)
    at org.robolectric.shadows.ShadowLooper.unPause(ShadowLooper.java:291)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:342)
    at org.robolectric.shadows.ShadowViewGroup.addView(ShadowViewGroup.java:34)
    at android.view.ViewGroup.addView(ViewGroup.java)
    at android.view.ViewGroup.addView(ViewGroup.java:3758)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    at com.github.st1hy.countthemcalories.activities.overview.fragment.presenter.MealsAdapter.onCreateViewHolder(MealsAdapter.java:102)
    at com.github.st1hy.countthemcalories.activities.overview.fragment.presenter.MealsAdapter.onCreateViewHolder(MealsAdapter.java:49)
    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5779)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5003)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4913)
    at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2029)
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1414)
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377)
    at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:578)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3260)
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3069)
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3518)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
    at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
    at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1319)
    at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:817)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1191)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
    at android.view.View.layout(View.java:15671)
    at android.view.ViewGroup.layout(ViewGroup.java:5038)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at org.robolectric.shadows.ShadowMessageQueue.dispatchMessage(ShadowMessageQueue.java:144)
    at org.robolectric.shadows.ShadowMessageQueue.access$100(ShadowMessageQueue.java:30)
    at org.robolectric.shadows.ShadowMessageQueue$1.run(ShadowMessageQueue.java:105)
    at org.robolectric.util.Scheduler$ScheduledRunnable.run(Scheduler.java:335)
    at org.robolectric.util.Scheduler.runOneTask(Scheduler.java:237)
    at org.robolectric.util.Scheduler.advanceTo(Scheduler.java:218)
    at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:201)
    at org.robolectric.util.Scheduler.setIdleState(Scheduler.java:78)
    at org.robolectric.util.Scheduler.unPause(Scheduler.java:112)
    at org.robolectric.shadows.ShadowLooper.unPause(ShadowLooper.java:291)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:342)
    at org.robolectric.shadows.CoreShadowsAdapter$2.runPaused(CoreShadowsAdapter.java:40)
    at org.robolectric.util.ActivityController.visible(ActivityController.java:177)
    at org.robolectric.util.ActivityController.setup(ActivityController.java:227)
    at org.robolectric.Robolectric.setupActivity(Robolectric.java:96)
    at com.github.st1hy.countthemcalories.core.drawer.view.DrawerActivityRoboTest.setUp(DrawerActivityRoboTest.java:58)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:248)
    at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:174)
    at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:63)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:140)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Stacktrace when config sdk = 23

android.view.InflateException: XML file build/intermediates/res/merged/production/debug/layout/overview_item_bottom_space.xml line #-1 (sorry, not yet implemented): Layout state should be one of 100 but it is 10

    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.github.st1hy.countthemcalories.activities.overview.fragment.presenter.MealsAdapter.onCreateViewHolder(MealsAdapter.java:102)
    at com.github.st1hy.countthemcalories.activities.overview.fragment.presenter.MealsAdapter.onCreateViewHolder(MealsAdapter.java:49)
    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5779)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5003)
    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4913)
    at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2029)
    at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1414)
    at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377)
    at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:578)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3260)
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3069)
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3518)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
    at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
    at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1319)
    at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:817)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1191)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at org.robolectric.shadows.ShadowMessageQueue.dispatchMessage(ShadowMessageQueue.java:144)
    at org.robolectric.shadows.ShadowMessageQueue.access$100(ShadowMessageQueue.java:30)
    at org.robolectric.shadows.ShadowMessageQueue$1.run(ShadowMessageQueue.java:113)
    at org.robolectric.util.Scheduler$ScheduledRunnable.run(Scheduler.java:335)
    at org.robolectric.util.Scheduler.runOneTask(Scheduler.java:237)
    at org.robolectric.util.Scheduler.advanceTo(Scheduler.java:218)
    at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:201)
    at org.robolectric.util.Scheduler.setIdleState(Scheduler.java:78)
    at org.robolectric.util.Scheduler.unPause(Scheduler.java:112)
    at org.robolectric.shadows.ShadowLooper.unPause(ShadowLooper.java:291)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:342)
    at org.robolectric.shadows.CoreShadowsAdapter$2.runPaused(CoreShadowsAdapter.java:40)
    at org.robolectric.util.ActivityController.visible(ActivityController.java:177)
    at org.robolectric.util.ActivityController.setup(ActivityController.java:227)
    at org.robolectric.Robolectric.setupActivity(Robolectric.java:96)
    at com.github.st1hy.countthemcalories.core.drawer.view.DrawerActivityRoboTest.setUp(DrawerActivityRoboTest.java:58)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:248)
    at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:174)
    at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:63)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:140)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.IllegalStateException: Layout state should be one of 100 but it is 10
    at android.support.v7.widget.RecyclerView$State.assertLayoutStep(RecyclerView.java:10477)
    at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3277)
    at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3080)
    at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3518)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.support.design.widget.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:131)
    at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
    at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1319)
    at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:817)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1191)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
    at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678)
    at android.view.View.layout(View.java:16630)
    at android.view.ViewGroup.layout(ViewGroup.java:5437)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at org.robolectric.shadows.ShadowMessageQueue.dispatchMessage(ShadowMessageQueue.java:144)
    at org.robolectric.shadows.ShadowMessageQueue.access$100(ShadowMessageQueue.java:30)
    at org.robolectric.shadows.ShadowMessageQueue$1.run(ShadowMessageQueue.java:113)
    at org.robolectric.util.Scheduler$ScheduledRunnable.run(Scheduler.java:335)
    at org.robolectric.util.Scheduler.runOneTask(Scheduler.java:237)
    at org.robolectric.util.Scheduler.advanceTo(Scheduler.java:218)
    at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:201)
    at org.robolectric.util.Scheduler.setIdleState(Scheduler.java:78)
    at org.robolectric.util.Scheduler.unPause(Scheduler.java:112)
    at org.robolectric.shadows.ShadowLooper.unPause(ShadowLooper.java:291)
    at org.robolectric.shadows.ShadowLooper.runPaused(ShadowLooper.java:342)
    at org.robolectric.shadows.ShadowViewGroup.addView(ShadowViewGroup.java:34)
    at android.view.ViewGroup.addView(ViewGroup.java)
    at android.view.ViewGroup.addView(ViewGroup.java:4117)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:839)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    ... 101 more

Steps to Reproduce

Not sure since I don't know root problem.
You can try running this test on branch support-library-24.1

Robolectric & Android Version

Robolectric version: 3.1.1
Support library version 24.1
Config: sdk = 23 and 22
compileSdkVersion = 24
buildToolsVersion = '24.0.1'

@xian xian added the defect label Jul 21, 2016
@jaredsburrows
Copy link
Contributor

jaredsburrows commented Jul 28, 2016

That test on your master and support-library-24.1 branch does not work for me. I suggest using CI such as TravisCI so people can see that your build is passing or not.

gradle testDevToolsDebug --tests="*OverviewActivityRoboTest*" -i

Here are my errors:

com.github.st1hy.countthemcalories.activities.overview.fragment.view.OverviewActivityRoboTest > testEditMeal FAILED
    java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 0

        Caused by:
        java.lang.ArrayIndexOutOfBoundsException: 0

com.github.st1hy.countthemcalories.activities.overview.fragment.view.OverviewActivityRoboTest > testAddMeal FAILED
    java.util.ServiceConfigurationError: org.robolectric.internal.ShadowProvider: Provider org.robolectric.Shadows not a subtype

com.github.st1hy.countthemcalories.activities.overview.fragment.view.OverviewActivityRoboTest > testUndoRemoveMeal FAILED
    java.util.ServiceConfigurationError: org.robolectric.internal.ShadowProvider: Provider org.robolectric.Shadows not a subtype

com.github.st1hy.countthemcalories.activities.overview.fragment.view.OverviewActivityRoboTest > testRemoveMeal FAILED
    java.util.ServiceConfigurationError: org.robolectric.internal.ShadowProvider: Provider org.robolectric.Shadows not a subtype

com.github.st1hy.countthemcalories.activities.overview.fragment.view.OverviewActivityRoboTest > testOpenSettings FAILED
    java.util.ServiceConfigurationError: org.robolectric.internal.ShadowProvider: Provider org.robolectric.Shadows not a subtype

com.github.st1hy.countthemcalories.activities.overview.fragment.view.OverviewActivityRoboTest > testDisplaysMeals FAILED
    java.util.ServiceConfigurationError: org.robolectric.internal.ShadowProvider: Provider org.robolectric.Shadows not a subtype

com.github.st1hy.countthemcalories.activities.settings.fragment.presenter.SettingsPresenterImplTest STANDARD_ERROR
    java.io.IOException: socket not created
        at android.net.LocalSocketImpl.bind(LocalSocketImpl.java:303)
        at android.net.LocalServerSocket.__constructor__(LocalServerSocket.java:48)
        at android.net.LocalServerSocket.<init>(LocalServerSocket.java)
        at com.facebook.stetho.server.LocalSocketServer.bindToSocket(LocalSocketServer.java:142)
        at com.facebook.stetho.server.LocalSocketServer.listenOnAddress(LocalSocketServer.java:78)
        at com.facebook.stetho.server.LocalSocketServer.run(LocalSocketServer.java:74)
        at com.facebook.stetho.server.ServerManager$1.run(ServerManager.java:40)
Gradle Test Executor 1 finished executing tests.

6 tests completed, 6 failed
Finished generating test XML results (0.003 secs) into: /Users/<>/repo/Count-Them-Calories/app/build/test-results/devtoolsDebug
Generating HTML test report...
Finished generating test html results (0.003 secs) into: /Users/<>/repo/Count-Them-Calories/app/build/reports/tests/devtoolsDebug
:app:testDevtoolsDebugUnitTest FAILED
:app:testDevtoolsDebugUnitTest (Thread[Daemon worker Thread 3,5,main]) completed. Took 3.457 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:testDevtoolsDebugUnitTest'.
> There were failing tests. See the report at: file:///Users/<>/repo/Count-Them-Calories/app/build/reports/tests/devtoolsDebug/index.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 18.309 secs
Stopped 0 compiler daemon(s).

@st1hy
Copy link
Author

st1hy commented Jul 28, 2016

Sorry, I should have said they work only on productionDebug build variant. I didn't bothered with mocking some of the dependencies used for testing in devtoolsDebug, but I don't get paid for my hobby project anyway.

@jongerrish
Copy link
Contributor

This should be fixed with Robolectric 4.0 and binary resources. Please reopen if its still an issue

@skarempudi
Copy link

skarempudi commented Aug 7, 2019

I've encountered this issue with AndroidX and Robolectric 4.3, at this line:
mActivity = Robolectric.buildActivity(TestPlayerActivity.class).create().start().resume().visible().get();

Error:

java.lang.Exception: Main looper has queued unexecuted runnables. This might be the cause of the test failure. You might need a shadowOf(getMainLooper()).idle() call.

	at org.robolectric.android.internal.AndroidTestEnvironment.checkStateAfterTestFailure(AndroidTestEnvironment.java:470)
	at org.robolectric.RobolectricTestRunner$HelperTestRunner$1.evaluate(RobolectricTestRunner.java:548)
	at org.robolectric.internal.SandboxTestRunner$2.lambda$evaluate$0(SandboxTestRunner.java:252)
	at org.robolectric.internal.bytecode.Sandbox.lambda$runOnMainThread$0(Sandbox.java:89)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Layout state should be one of 100 but it is 10
	at androidx.recyclerview.widget.RecyclerView$State.assertLayoutStep(RecyclerView.java:12115)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3941)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3652)
	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1255)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at org.robolectric.shadows.ShadowLegacyMessageQueue.dispatchMessage(ShadowLegacyMessageQueue.java:157)
	at org.robolectric.shadows.ShadowLegacyMessageQueue.access$200(ShadowLegacyMessageQueue.java:42)
	at org.robolectric.shadows.ShadowLegacyMessageQueue$1.run(ShadowLegacyMessageQueue.java:135)
	at org.robolectric.util.Scheduler$ScheduledRunnable.run(Scheduler.java:407)
	at org.robolectric.util.Scheduler.runOneTask(Scheduler.java:279)
	at org.robolectric.util.Scheduler.advanceTo(Scheduler.java:261)
	at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:244)
	at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:234)
	at org.robolectric.util.Scheduler.setIdleState(Scheduler.java:89)
	at org.robolectric.util.Scheduler.unPause(Scheduler.java:124)
	at org.robolectric.shadows.ShadowLegacyLooper.unPause(ShadowLegacyLooper.java:267)
	at org.robolectric.shadows.ShadowLegacyLooper.runPaused(ShadowLegacyLooper.java:324)
	at org.robolectric.shadows.ShadowViewGroup.addView(ShadowViewGroup.java:36)
	at android.view.ViewGroup.addView(ViewGroup.java)
	at android.view.ViewGroup.addView(ViewGroup.java:3727)
	at androidx.recyclerview.widget.RecyclerView$5.addView(RecyclerView.java:851)
	at androidx.recyclerview.widget.ChildHelper.addView(ChildHelper.java:107)
	at androidx.recyclerview.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:8336)
	at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8294)
	at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8282)
	at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1571)
	at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1255)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
	at android.view.View.layout(View.java:15671)
	at android.view.ViewGroup.layout(ViewGroup.java:5038)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at org.robolectric.shadows.ShadowLegacyMessageQueue.dispatchMessage(ShadowLegacyMessageQueue.java:157)
	at org.robolectric.shadows.ShadowLegacyMessageQueue.access$200(ShadowLegacyMessageQueue.java:42)
	at org.robolectric.shadows.ShadowLegacyMessageQueue$1.run(ShadowLegacyMessageQueue.java:135)
	at org.robolectric.util.Scheduler$ScheduledRunnable.run(Scheduler.java:407)
	at org.robolectric.util.Scheduler.runOneTask(Scheduler.java:279)
	at org.robolectric.util.Scheduler.advanceTo(Scheduler.java:261)
	at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:244)
	at org.robolectric.util.Scheduler.advanceBy(Scheduler.java:234)
	at org.robolectric.util.Scheduler.setIdleState(Scheduler.java:89)
	at org.robolectric.util.Scheduler.unPause(Scheduler.java:124)
	at org.robolectric.shadows.ShadowLegacyLooper.unPause(ShadowLegacyLooper.java:267)
	at org.robolectric.shadows.ShadowLegacyLooper.runPaused(ShadowLegacyLooper.java:324)
	at org.robolectric.android.controller.ActivityController.visible(ActivityController.java:165)
	at app.media.videopreroll.VideoPrerollNavigationTest.setUp(VideoPrerollNavigationTest.java:49)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
	at org.robolectric.RobolectricTestRunner$HelperTestRunner$1.evaluate(RobolectricTestRunner.java:546)```

@brettchabot
Copy link
Contributor

@skarempudi try switching to LooperMode(PAUSED) and ActivityScenario

@skarempudi
Copy link

skarempudi commented Aug 7, 2019

@skarempudi try switching to LooperMode(PAUSED) and ActivityScenario

Ah yes, sorry, I hadn't tried that because this test was passing on our AndroidX migration branch before it was merged into our master branch, where it started failing. Doing that is making the test pass. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants