appium / appium-espresso-driver

Espresso integration for Appium
Apache License 2.0
195 stars 75 forks source link

Crash on some app screens when using espresso driver #767

Closed iparry7979 closed 2 years ago

iparry7979 commented 2 years ago

I’m experiencing an app crash with the espresso driver that does not occur when running the app under normal conditions. The error is as follows:

[debug] [Espresso] [Instrumentation] Process crashed while executing startEspressoServer(io.appium.espressoserver.EspressoServerRunnerTest):
[debug] [Espresso] java.lang.NoSuchMethodError: No virtual method limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher; in class Lkotlinx/coroutines/CoroutineDispatcher; or its super classes (declaration of 'kotlinx.coroutines.CoroutineDispatcher' appears in /data/app/~~XucXUhg7Bzv29ZkXSLRTjg==/io.appium.espressoserver.test-_DuJNVhx4wYAXFyZJ1e-cA==/base.apk!classes13.dex)
[debug] [Espresso]      at coil.disk.DiskLruCache.<init>(DiskLruCache.kt:143)
[debug] [Espresso]      at coil.disk.RealDiskCache.<init>(RealDiskCache.kt:17)
[debug] [Espresso]      at coil.disk.DiskCache$Builder.build(DiskCache.kt:203)
[debug] [Espresso]      at myApp.RetrofitModule.getImageLoader(HydraClient.kt:172)
[debug] [Espresso]      at myapp.RetrofitModule_GetImageLoaderFactory.getImageLoader(RetrofitModule_GetImageLoaderFactory.java:39)
[debug] [Espresso]      at myapp.DaggerAJSApplication_HiltComponents_SingletonC.imageLoader(DaggerAJSApplication_HiltComponents_SingletonC.java:532)
[debug] [Espresso]      at myapp.DaggerAJSApplication_HiltComponents_SingletonC.access$4400(DaggerAJSApplication_HiltComponents_SingletonC.java:251)
[debug] [Espresso]      at myapp.DaggerAJSApplication_HiltComponents_SingletonC$ViewModelCImpl.vacancyIconViewModel(DaggerAJSApplication_HiltComponents_SingletonC.java:1636)
[debug] [Espresso]      at myapp.DaggerAJSApplication_HiltComponents_SingletonC$ViewModelCImpl.access$6900(DaggerAJSApplication_HiltComponents_SingletonC.java:1396)
[debug] [Espresso]      at myapp.DaggerAJSApplication_HiltComponents_SingletonC$ViewModelCImpl$SwitchingProvider.get(DaggerAJSApplication_HiltComponents_SingletonC.java:1772)
[debug] [Espresso]      at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory$1.create(HiltViewModelFactory.java:100)
[debug] [Espresso]      at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:69)
[debug] [Espresso]      at androidx.lifecycle.AbstractSavedStateViewModelFactory.create(AbstractSavedStateViewModelFactory.java:84)
[debug] [Espresso]      at dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.create(HiltViewModelFactory.java:109)
[debug] [Espresso]      at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:187)
[debug] [Espresso]      at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:150)
[debug] [Espresso]      at androidx.lifecycle.viewmodel.compose.ViewModelKt.get(ViewModel.kt:87)
[debug] [Espresso]      at androidx.lifecycle.viewmodel.compose.ViewModelKt.viewModel(ViewModel.kt:72)
[debug] [Espresso]      at myapp.JobSearchResultKt.VacancyIcon(JobSearchResult.kt:397)
[debug] [Espresso]      at myapp.JobSearchResultKt.JobSearchResult(JobSearchResult.kt:83)
[debug] [Espresso]      at myapp.JobListingFragment$ListJobs$1.invoke(JobListingFragment.kt:36)
[debug] [Espresso]      at myapp.JobListingFragment$ListJobs$1.invoke(JobListingFragment.kt:34)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:135)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
[debug] [Espresso]      at androidx.compose.foundation.lazy.list.LazyListScopeImpl$items$1$1.invoke(LazyListScopeImpl.kt:41)
[debug] [Espresso]      at androidx.compose.foundation.lazy.list.LazyListScopeImpl$items$1$1.invoke(LazyListScopeImpl.kt:41)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
[debug] [Espresso]      at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)[debug] [Espresso]      at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
[debug] [Espresso]      at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content$1.invoke(LazyLayoutItemContentFactory.kt:103)
[debug] [Espresso]      at androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory$CachedItemContent$content$1.invoke(LazyLayoutItemContentFactory.kt:94)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2$1$1.invoke(SubcomposeLayout.kt:251)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2$1$1.invoke(SubcomposeLayout.kt:251)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)
[debug] [Espresso]      at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)
[debug] [Espresso]      at androidx.compose.runtime.ComposerKt.invokeComposable(Composer.kt:3337)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2582)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:2571)
[debug] [Espresso]      at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:247)
[debug] [Espresso]      at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl.doCompose(Composer.kt:2571)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:2522)
[debug] [Espresso]      at androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:478)
[debug] [Espresso]      at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:748)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:2987)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:2987)
[debug] [Espresso]      at androidx.compose.runtime.ComposerImpl$CompositionContextImpl.composeInitial$runtime_release(Composer.kt:2987)
[debug] [Espresso]      at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:433)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState.subcomposeInto(SubcomposeLayout.kt:269)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState.access$subcomposeInto(SubcomposeLayout.kt:154)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2.invoke(SubcomposeLayout.kt:244)[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState$subcompose$2.invoke(SubcomposeLayout.kt:241)[debug] [Espresso]      at androidx.compose.runtime.snapshots.SnapshotStateObserver.withNoObservations(SnapshotStateObserver.kt:142)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.withNoSnapshotReadObservation$ui_release(OwnerSnapshotObserver.kt:55)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.withNoSnapshotReadObservation$ui_release(LayoutNode.kt:1175)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState.subcompose(SubcomposeLayout.kt:241)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState.subcompose(SubcomposeLayout.kt:235)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState.subcompose$ui_release(SubcomposeLayout.kt:224)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState$Scope.subcompose(SubcomposeLayout.kt:490)
[debug] [Espresso]      at androidx.compose.foundation.lazy.layout.LazyLayoutPlaceablesProvider.getAndMeasure-0kLqBqw(LazyMeasurePolicy.kt:58)
[debug] [Espresso]      at androidx.compose.foundation.lazy.list.LazyMeasuredItemProvider.getAndMeasure-oA9-DU0(LazyMeasuredItemProvider.kt:45)
[debug] [Espresso]      at androidx.compose.foundation.lazy.list.LazyListMeasureKt.measureLazyList-wroFCeY(LazyListMeasure.kt:145)
[debug] [Espresso]      at androidx.compose.foundation.lazy.list.LazyListKt$rememberLazyListMeasurePolicy$1$1.measure-3p2s80s(LazyList.kt:259)
[debug] [Espresso]      at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$2.invoke-0kLqBqw(LazyLayout.kt:55)
[debug] [Espresso]      at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$2.invoke(LazyLayout.kt:44)
[debug] [Espresso]      at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:355)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:306)
[debug] [Espresso]      at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
[debug] [Espresso]      at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1.measure-3p2s80s(Box.kt:115)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
[debug] [Espresso]      at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
[debug] [Espresso]      at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
[debug] [Espresso]      at androidx.constraintlayout.compose.Measurer.measure(ConstraintLayout.kt:1864)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measure(BasicMeasure.java:466)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measureChildren(BasicMeasure.java:134)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure(BasicMeasure.java:278)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure(ConstraintWidgetContainer.java:120)
[debug] [Espresso]      at androidx.constraintlayout.compose.Measurer.performMeasure-DjhGOtQ(ConstraintLayout.kt:2095)
[debug] [Espresso]      at androidx.constraintlayout.compose.ConstraintLayoutKt$rememberConstraintLayoutMeasurePolicy$1$measurePolicy$1.measure-3p2s80s(ConstraintLayout.kt:122)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
[debug] [Espresso]      at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.kt:271)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.kt:279)
[debug] [Espresso]      at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree(AndroidComposeView.android.kt:670)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:118)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
[debug] [Espresso]      at androidx.constraintlayout.compose.Measurer.measure(ConstraintLayout.kt:1864)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measure(BasicMeasure.java:466)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.measureChildren(BasicMeasure.java:134)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure(BasicMeasure.java:278)
[debug] [Espresso]      at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure(ConstraintWidgetContainer.java:120)
[debug] [Espresso]      at androidx.constraintlayout.compose.Measurer.performMeasure-DjhGOtQ(ConstraintLayout.kt:2095)
[debug] [Espresso]      at androidx.constraintlayout.compose.ConstraintLayoutKt$rememberConstraintLayoutMeasurePolicy$1$measurePolicy$1.measure-3p2s80s(ConstraintLayout.kt:122)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:99)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
[debug] [Espresso]      at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
[debug] [Espresso]      at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:201)
[debug] [Espresso]      at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:662)
[debug] [Espresso]      at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
[debug] [Espresso]      at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:846)
[debug] [Espresso]      at android.view.View.draw(View.java:23910)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22782)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.View.draw(View.java:23637)
[debug] [Espresso]      at android.view.ViewGroup.drawChild(ViewGroup.java:5336)
[debug] [Espresso]      at android.view.ViewGroup.dispatchDraw(ViewGroup.java:5093)
[debug] [Espresso]      at android.view.View.draw(View.java:23910)
[debug] [Espresso]      at androidx.compose.ui.platform.AndroidViewsHandler.drawView(AndroidViewsHandler.android.kt:72)
[debug] [Espresso]      at androidx.compose.ui.platform.AndroidComposeView.drawAndroidView(AndroidComposeView.android.kt:632)
[debug] [Espresso]      at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$coreModifier$1.invoke(AndroidViewHolder.android.kt:257)
[debug] [Espresso]      at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$coreModifier$1.invoke(AndroidViewHolder.android.kt:254)
[debug] [Espresso]      at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:101)
[debug] [Espresso]      at androidx.compose.ui.node.DrawEntity.draw(DrawEntity.kt:108)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:279)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:868)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.performDraw(InnerPlaceable.kt:140)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.ModifiedLayoutNode.performDraw(ModifiedLayoutNode.kt:98)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:868)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.performDraw(InnerPlaceable.kt:140)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:48)
[debug] [Espresso]      at androidx.compose.foundation.Background.draw(Background.kt:107)
[debug] [Espresso]      at androidx.compose.ui.node.DrawEntity.draw(DrawEntity.kt:108)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:279)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.ModifiedLayoutNode.performDraw(ModifiedLayoutNode.kt:98)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.access$drawContainedDrawModifiers(LayoutNodeWrapper.kt:59)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper$invoke$1.invoke(LayoutNodeWrapper.kt:294)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper$invoke$1.invoke(LayoutNodeWrapper.kt:293)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
[debug] [Espresso]      at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
[debug] [Espresso]      at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.invoke(LayoutNodeWrapper.kt:293)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.invoke(LayoutNodeWrapper.kt:59)
[debug] [Espresso]      at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:168)
[debug] [Espresso]      at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:293)
[debug] [Espresso]      at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:234)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:264)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:868)
[debug] [Espresso]      at androidx.compose.ui.node.InnerPlaceable.performDraw(InnerPlaceable.kt:140)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performDraw(DelegatingLayoutNodeWrapper.kt:69)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.drawContainedDrawModifiers(LayoutNodeWrapper.kt:277)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.kt:269)
[debug] [Espresso]      at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:868)
[debug] [Espresso]      at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:852)
[debug] [Espresso]      at android.view.View.draw(View.java:23910)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22782)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5320)
[debug] [Espresso]      at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5292)
[debug] [Espresso]      at android.view.View.updateDisplayListIfDirty(View.java:22737)
[debug] [Espresso]      at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:583)
[debug] [Espresso]      at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:589)
[debug] [Espresso]      at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:666)
[debug] [Espresso]      at android.view.ViewRootImpl.draw(ViewRootImpl.java:5124)
[debug] [Espresso]      at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4824)
[debug] [Espresso]      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3936)
[debug] [Espresso]      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2669)
[debug] [Espresso]      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10092)
[debug] [Espresso]      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010)
[debug] [Espresso]      at android.view.Choreographer.doCallbacks(Choreographer.java:809)
[debug] [Espresso]      at android.view.Choreographer.doFrame(Choreographer.java:744)
[debug] [Espresso]      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
[debug] [Espresso]      at android.os.Handler.handleCallback(Handler.java:938)
[debug] [Espresso]      at android.os.Handler.dispatchMessage(Handler.java:99)
[debug] [Espresso]      at android.os.Looper.loop(Looper.java:247)
[debug] [Espresso]      at android.app.ActivityThread.main(ActivityThread.java:8656)
[debug] [Espresso]      at java.lang.reflect.Method.invoke(Native Method)
[debug] [Espresso]      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
[debug] [Espresso]      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
[debug] [Espresso] [Instrumentation] INSTRUMENTATION_RESULT: shortMsg=Process crashed.
[debug] [Espresso] INSTRUMENTATION_CODE: 0
[Espresso] Instrumentation process exited with code 0 from signal null
[BaseDriver] Shutting down because we waited 60 seconds for a command

I was originally running the espresso driver with the following esspressoBuildConfig:

{"toolsVersions": {"composeVersion": "1.1.1", "compileSdk":"31", "kotlin":"1.6.10"}}

My initial thought was that it was a version incompatibility. I checked with my app developer and he said we were using kotlin version 1.5.30 and compose version 1.1.0 so I rebuilt the espresso driver with the downgraded versions but still got the same error.

Please let me know if more info is required.

KazuCocoa commented 2 years ago

It said limitedParallelism is not in kotlinx/coroutines/CoroutineDispatcher dependency.

[debug] [Espresso] java.lang.NoSuchMethodError: No virtual method limitedParallelism(I)Lkotlinx/coroutines/CoroutineDispatcher; in class Lkotlinx/coroutines/CoroutineDispatcher; or its super classes (declaration of 'kotlinx.coroutines.CoroutineDispatcher' appears in /data/app/~~XucXUhg7Bzv29ZkXSLRTjg==/io.appium.espressoserver.test-_DuJNVhx4wYAXFyZJ1e-cA==/base.apk!classes13.dex)

What about coordinating the dependencies of the kotlin coroutine? Probably the coroutine module (or part of it?) was lost in Android Instrumentation build. (androidTestImplementation dependency one)

iparry7979 commented 2 years ago

Thankyou. This worked when I added "additionalAppDependencies": ["org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1"] to the espressoBuildConfig capability.

Is it always necessary to explicitly define each additional dependency that the app under test uses?

KazuCocoa commented 2 years ago

Not everything, but yes, to include them as AndroidTest build. It is Espresso/instrumentation framework stuff.