takahirom / roborazzi

Make JVM Android integration test visible 🤖📸
https://takahirom.github.io/roborazzi/
Apache License 2.0
654 stars 25 forks source link

Build failed in :roborazzi-core module #278

Closed sanao1006 closed 3 months ago

sanao1006 commented 4 months ago

Overview

I got the following error when I forked and built a Roborazzi project (maybe it happens when you do a clean build).

Configuration `:roborazzi-core:androidDebugCompileClasspath` contains AndroidX dependencies, but the `android.useAndroidX` property is not enabled, which may cause runtime issues.
Set `android.useAndroidX=true` in the `gradle.properties` file and retry.
The following AndroidX dependencies are detected:
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.annotation:annotation:1.5.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:core:1.5.0
:roborazzi-core:androidDebugCompileClasspath -> org.robolectric:robolectric:4.10.3 -> androidx.test:monitor:1.6.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:annotation:1.0.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:annotation:1.0.1 -> androidx.annotation:annotation-experimental:1.1.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:runner:1.5.2 -> androidx.tracing:tracing:1.0.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:runner:1.5.2 -> androidx.test.services:storage:1.4.2
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:core:1.5.0 -> androidx.lifecycle:lifecycle-common:2.3.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:core:1.5.0 -> androidx.concurrent:concurrent-futures:1.1.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test:runner:1.5.2
:roborazzi-core:androidDebugCompileClasspath -> androidx.test.espresso:espresso-core:3.5.1 -> androidx.test.espresso:espresso-idling-resource:3.5.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test:1.4.0 -> androidx.compose.runtime:runtime:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.compose.ui:ui-graphics:1.4.0 -> androidx.compose.ui:ui-text:1.4.0 -> androidx.compose.ui:ui-unit:1.4.0 -> androidx.compose.ui:ui-geometry:1.4.0 -> androidx.compose.ui:ui:1.4.0 -> androidx.compose.runtime:runtime-saveable:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.compose.ui:ui-graphics:1.4.0 -> androidx.compose.ui:ui-text:1.4.0 -> androidx.compose.ui:ui-unit:1.4.0 -> androidx.compose.ui:ui-geometry:1.4.0 -> androidx.compose.ui:ui:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.compose.ui:ui:1.4.0 -> androidx.compose.ui:ui-graphics:1.4.0 -> androidx.compose.ui:ui-text:1.4.0 -> androidx.compose.ui:ui-unit:1.4.0 -> androidx.compose.ui:ui-geometry:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.compose.ui:ui:1.4.0 -> androidx.compose.ui:ui-text:1.4.0 -> androidx.compose.ui:ui-unit:1.4.0 -> androidx.compose.ui:ui-geometry:1.4.0 -> androidx.compose.ui:ui-graphics:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.compose.ui:ui:1.4.0 -> androidx.compose.ui:ui-graphics:1.4.0 -> androidx.compose.ui:ui-text:1.4.0 -> androidx.compose.ui:ui-geometry:1.4.0 -> androidx.compose.ui:ui-unit:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.core:core-ktx:1.8.0 -> androidx.core:core:1.8.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1 -> androidx.lifecycle:lifecycle-runtime:2.3.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1 -> androidx.lifecycle:lifecycle-runtime:2.3.1 -> androidx.arch.core:core-common:2.1.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.core:core-ktx:1.8.0 -> androidx.core:core:1.8.0 -> androidx.versionedparcelable:versionedparcelable:1.1.1
:roborazzi-core:androidDebugCompileClasspath -> androidx.core:core-ktx:1.8.0 -> androidx.core:core:1.8.0 -> androidx.versionedparcelable:versionedparcelable:1.1.1 -> androidx.collection:collection:1.0.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1 -> androidx.lifecycle:lifecycle-viewmodel:2.3.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1 -> androidx.savedstate:savedstate:1.1.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1 -> androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.activity:activity:1.2.1 -> androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.0 -> androidx.lifecycle:lifecycle-livedata-core:2.3.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.test.ext:junit:1.1.5
:roborazzi-core:androidDebugCompileClasspath -> androidx.compose.ui:ui-test-junit4:1.4.0 -> androidx.compose.ui:ui:1.4.0 -> androidx.compose.ui:ui-graphics:1.4.0 -> androidx.compose.ui:ui-unit:1.4.0 -> androidx.compose.ui:ui-geometry:1.4.0 -> androidx.compose.ui:ui-text:1.4.0
:roborazzi-core:androidDebugCompileClasspath -> androidx.core:core-ktx:1.8.0

This error can be resolved by adding the following property to /include-build/gradle.properties

android.useAndroidX=true

However, /include-build/gradle.properties reads ../gradle.properties, so I think it's odd that this error occurs.

Is this an error that only occurs in my environment or does it also occur in yours, @takahirom?

takahirom commented 4 months ago

I can't reproduce the issue by using the tasks below. But I'm fine to add the flag.

./gradlew roborazzi-core:clean roborazzi-core:build

It seems that we should add the flag.

https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:build-system/gradle-core/src/main/java/com/android/build/gradle/internal/dependency/AndroidXDependencyCheck.kt;l=70?q=%22The%20following%20AndroidX%20dependencies%20are%20detected%22

sanao1006 commented 4 months ago

I ran this task and got the same error in my environment.

./gradlew roborazzi-core:clean roborazzi-core:build

Also,

But I'm fine to add the flag.

Does this mean that it is ok to add android.useAndroidX=true to /include-build/gradle.properties? Since it seems slight, can I take charge of it?

takahirom commented 3 months ago

@sanao1006 Yes. I'd appreciate if you could do that!