Giter Site home page Giter Site logo

codelab-android-compose's People

Contributors

arriolac avatar astamato avatar bentrengrove avatar chrisbanes avatar florina-muntenescu avatar fornewid avatar gurupreet avatar htcardone avatar iangclifton avatar jolandaverhoef avatar josealcerreca avatar keyboardsurfer avatar magicalmeghan avatar manuelvicnt avatar mlykotom avatar nickbutcher avatar nico-gonzalez avatar o-levchenko avatar objcode avatar ravi-kumar7 avatar renovate[bot] avatar ricknout avatar riggaroo avatar rugermccarthy avatar simona-anomis avatar surajsahani avatar yaraki avatar yrezgui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codelab-android-compose's Issues

Typo in StateCodelab part 8

At the bottom of the code lab tutorial it says:

"This transformation is a really important one to understand when using compose. We took a stateful composable, TodoInputItem, and split it into two composables. One with state (TodoItemEntryInput) and one stateless (TodoItemEntry)."

TodoItemEntry should be called -> TodoItemInput

@Composable
fun TodoItemEntryInput(onItemComplete: (TodoItem) -> Unit) {
    // ...
}

@Composable
private fun TodoItemInput(
   text: String,
   onTextChange: (String) -> Unit,
   icon: TodoIcon,
   onIconChange: (TodoIcon) -> Unit,
   submit: () -> Unit,
   iconsVisible: Boolean
) {
    // ...
}

I cannot find the website code for it, otherwise I would have created a PR for it.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

Branch main
github-actions
.github/workflows/AccessibilityCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/AdvancedStateAndSideEffectsCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • reactivecircus/android-emulator-runner v2
  • actions/upload-artifact v4
.github/workflows/AnimationCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/BasicLayoutsCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/BasicStateCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/BasicsCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/MigrationCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • reactivecircus/android-emulator-runner v2
  • actions/upload-artifact v4
.github/workflows/NavigationCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/TestingCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/ThemingCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
gradle
AccessibilityCodelab/gradle.properties
AccessibilityCodelab/settings.gradle
AccessibilityCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
AccessibilityCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • com.google.accompanist:accompanist-swiperefresh 0.34.0
  • com.google.accompanist:accompanist-systemuicontroller 0.34.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.activity:activity-ktx 1.9.0
  • androidx.core:core-ktx 1.13.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-savedstate 2.7.0
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.navigation:navigation-compose 2.7.7
  • androidx.test:rules 1.5.0
  • androidx.test:runner 1.5.2
  • org.robolectric:robolectric 4.12.1
AdaptiveUICodelab/gradle.properties
AdaptiveUICodelab/settings.gradle
AdaptiveUICodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
AdaptiveUICodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.lifecycle:lifecycle-runtime-ktx 2.7.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.core:core-ktx 1.13.0
  • androidx.window:window 1.2.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
AdvancedStateAndSideEffectsCodelab/gradle.properties
AdvancedStateAndSideEffectsCodelab/settings.gradle
AdvancedStateAndSideEffectsCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.google.dagger:hilt-android-gradle-plugin 2.51.1
  • com.diffplug.spotless 6.25.0
  • junit:junit 4.13.2
AdvancedStateAndSideEffectsCodelab/app/build.gradle
  • composeOptions 1.5.10
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • com.google.android.libraries.maps:maps 3.1.0-beta
  • com.google.maps.android:maps-v3-ktx 3.4.0
  • com.android.volley:volley 1.2.1
  • androidx.activity:activity-compose 1.9.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.compose:compose-bom 2024.04.01
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • com.google.dagger:hilt-android 2.51.1
  • com.google.dagger:hilt-compiler 2.51.1
  • io.coil-kt:coil-compose 2.6.0
  • junit:junit 4.13.2
  • androidx.test:core 1.5.0
  • androidx.test:runner 1.5.2
  • androidx.test:rules 1.5.0
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.test.ext:junit-ktx 1.1.5
  • org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.0
  • com.google.dagger:hilt-android 2.51.1
  • com.google.dagger:hilt-android-testing 2.51.1
  • com.google.dagger:hilt-compiler 2.51.1
AnimationCodelab/gradle.properties
AnimationCodelab/settings.gradle
AnimationCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
AnimationCodelab/finished/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.activity:activity-compose 1.9.0
  • androidx.core:core-ktx 1.13.0
AnimationCodelab/start/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.activity:activity-compose 1.9.0
  • androidx.core:core-ktx 1.13.0
BasicLayoutsCodelab/gradle.properties
BasicLayoutsCodelab/settings.gradle
BasicLayoutsCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
BasicLayoutsCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.core:core-ktx 1.13.0
  • androidx.compose.material3:material3-window-size-class 1.2.1
  • com.google.android.material:material 1.11.0
  • androidx.lifecycle:lifecycle-runtime-ktx 2.7.0
  • androidx.activity:activity-compose 1.9.0
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
BasicStateCodelab/gradle.properties
BasicStateCodelab/settings.gradle
BasicStateCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
BasicStateCodelab/app/build.gradle.kts
  • composeOptions 1.5.10
  • androidx.core:core-ktx 1.13.0
  • androidx.lifecycle:lifecycle-runtime-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.compose:compose-bom 2024.04.01
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.compose:compose-bom 2024.04.01
BasicsCodelab/gradle.properties
BasicsCodelab/settings.gradle
BasicsCodelab/build.gradle.kts
  • com.android.application 8.3.2
  • org.jetbrains.kotlin.android 1.9.22
BasicsCodelab/app/build.gradle.kts
  • composeOptions 1.5.10
  • androidx.core:core-ktx 1.13.0
  • androidx.lifecycle:lifecycle-runtime-ktx 2.7.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.compose:compose-bom 2024.04.01
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.compose:compose-bom 2024.04.01
MigrationCodelab/gradle.properties
MigrationCodelab/settings.gradle
MigrationCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • androidx.navigation:navigation-safe-args-gradle-plugin 2.7.7
  • com.diffplug.spotless 6.25.0
MigrationCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.room:room-compiler 2.6.1
  • com.github.bumptech.glide:compiler 4.16.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.constraintlayout:constraintlayout 2.1.4
  • androidx.core:core-ktx 1.13.0
  • androidx.fragment:fragment-ktx 1.6.2
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.navigation:navigation-fragment-ktx 2.7.7
  • androidx.navigation:navigation-ui-ktx 2.7.7
  • androidx.recyclerview:recyclerview 1.3.2
  • androidx.room:room-runtime 2.6.1
  • androidx.room:room-ktx 2.6.1
  • androidx.viewpager2:viewpager2 1.0.0
  • androidx.work:work-runtime-ktx 2.9.0
  • com.github.bumptech.glide:glide 4.16.0
  • com.google.android.material:material 1.11.0
  • com.google.code.gson:gson 2.10.1
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.0
  • androidx.arch.core:core-testing 2.2.0
  • androidx.test.espresso:espresso-contrib 3.5.1
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.test.espresso:espresso-intents 3.5.1
  • androidx.test.ext:junit 1.1.5
  • androidx.test.uiautomator:uiautomator 2.3.0
  • androidx.work:work-testing 2.9.0
  • com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework 4.1.1
  • com.google.truth:truth 1.4.2
  • junit:junit 4.13.2
NavigationCodelab/gradle.properties
NavigationCodelab/settings.gradle
NavigationCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
NavigationCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.appcompat:appcompat 1.6.1
  • androidx.core:core-ktx 1.13.0
  • com.google.android.material:material 1.11.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.arch.core:core-testing 2.2.0
  • androidx.test.espresso:espresso-contrib 3.5.1
  • androidx.test.espresso:espresso-core 3.5.1
TestingCodelab/gradle.properties
TestingCodelab/settings.gradle
TestingCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
TestingCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.appcompat:appcompat 1.6.1
  • androidx.core:core-ktx 1.13.0
  • com.google.android.material:material 1.11.0
  • androidx.fragment:fragment-ktx 1.6.2
  • androidx.activity:activity-compose 1.9.0
  • androidx.arch.core:core-testing 2.2.0
  • androidx.test.espresso:espresso-contrib 3.5.1
  • androidx.test.espresso:espresso-core 3.5.1
ThemingCodelab/gradle.properties
ThemingCodelab/settings.gradle.kts
ThemingCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
ThemingCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.activity:activity-ktx 1.9.0
  • androidx.core:core-ktx 1.13.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-savedstate 2.7.0
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.test:rules 1.5.0
  • androidx.test:runner 1.5.2
ThemingCodelabM2/gradle.properties
ThemingCodelabM2/settings.gradle
ThemingCodelabM2/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
ThemingCodelabM2/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.core:core-ktx 1.13.0
  • androidx.activity:activity-compose 1.9.0
gradle-wrapper
AccessibilityCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
AdaptiveUICodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
AdvancedStateAndSideEffectsCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
AnimationCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
BasicLayoutsCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
BasicStateCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
BasicsCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
MigrationCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
NavigationCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
TestingCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
ThemingCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
ThemingCodelabM2/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
Branch end
github-actions
.github/workflows/AccessibilityCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/AdvancedStateAndSideEffectsCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • reactivecircus/android-emulator-runner v2
  • actions/upload-artifact v4
.github/workflows/AnimationCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/BasicLayoutsCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/BasicStateCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/BasicsCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/MigrationCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • reactivecircus/android-emulator-runner v2
  • actions/upload-artifact v4
.github/workflows/NavigationCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/TestingCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
.github/workflows/ThemingCodelab.yaml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/upload-artifact v4
gradle
AccessibilityCodelab/gradle.properties
AccessibilityCodelab/settings.gradle
AccessibilityCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
AccessibilityCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • com.google.accompanist:accompanist-swiperefresh 0.34.0
  • com.google.accompanist:accompanist-systemuicontroller 0.34.0
  • com.google.android.material:material 1.11.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.activity:activity-ktx 1.9.0
  • androidx.core:core-ktx 1.13.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-savedstate 2.7.0
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.navigation:navigation-compose 2.7.7
  • androidx.test:rules 1.5.0
  • androidx.test:runner 1.5.2
  • org.robolectric:robolectric 4.12.1
AdaptiveUiCodelab/gradle.properties
AdaptiveUiCodelab/settings.gradle
AdaptiveUiCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
AdaptiveUiCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.lifecycle:lifecycle-runtime-ktx 2.7.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.core:core-ktx 1.13.0
  • androidx.window:window 1.2.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • androidx.compose.material3:material3-window-size-class 1.2.1
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
AdvancedStateAndSideEffectsCodelab/gradle.properties
AdvancedStateAndSideEffectsCodelab/settings.gradle
AdvancedStateAndSideEffectsCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.google.dagger:hilt-android-gradle-plugin 2.51.1
  • com.diffplug.spotless 6.25.0
  • junit:junit 4.13.2
AdvancedStateAndSideEffectsCodelab/app/build.gradle
  • composeOptions 1.5.10
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • com.google.android.libraries.maps:maps 3.1.0-beta
  • com.google.maps.android:maps-v3-ktx 3.4.0
  • com.android.volley:volley 1.2.1
  • androidx.activity:activity-compose 1.9.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.compose:compose-bom 2024.04.01
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.lifecycle:lifecycle-runtime-compose 2.7.0
  • com.google.dagger:hilt-android 2.51.1
  • com.google.dagger:hilt-compiler 2.51.1
  • io.coil-kt:coil-compose 2.6.0
  • junit:junit 4.13.2
  • androidx.test:core 1.5.0
  • androidx.test:runner 1.5.2
  • androidx.test:rules 1.5.0
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.test.ext:junit-ktx 1.1.5
  • org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.0
  • com.google.dagger:hilt-android 2.51.1
  • com.google.dagger:hilt-android-testing 2.51.1
  • com.google.dagger:hilt-compiler 2.51.1
BasicLayoutsCodelab/gradle.properties
BasicLayoutsCodelab/settings.gradle
BasicLayoutsCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
BasicLayoutsCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.core:core-ktx 1.13.0
  • androidx.compose.material3:material3-window-size-class 1.2.1
  • com.google.android.material:material 1.11.0
  • androidx.lifecycle:lifecycle-runtime-ktx 2.7.0
  • androidx.activity:activity-compose 1.9.0
  • junit:junit 4.13.2
  • androidx.test.ext:junit 1.1.5
  • androidx.test.espresso:espresso-core 3.5.1
MigrationCodelab/gradle.properties
MigrationCodelab/settings.gradle
MigrationCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • androidx.navigation:navigation-safe-args-gradle-plugin 2.7.7
  • com.diffplug.spotless 6.25.0
MigrationCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.room:room-compiler 2.6.1
  • com.github.bumptech.glide:compiler 4.16.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.constraintlayout:constraintlayout 2.1.4
  • androidx.core:core-ktx 1.13.0
  • androidx.fragment:fragment-ktx 1.6.2
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.navigation:navigation-fragment-ktx 2.7.7
  • androidx.navigation:navigation-ui-ktx 2.7.7
  • androidx.recyclerview:recyclerview 1.3.2
  • androidx.room:room-runtime 2.6.1
  • androidx.room:room-ktx 2.6.1
  • androidx.viewpager2:viewpager2 1.0.0
  • androidx.work:work-runtime-ktx 2.9.0
  • com.github.bumptech.glide:glide 4.16.0
  • com.google.android.material:material 1.11.0
  • com.google.code.gson:gson 2.10.1
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.0
  • androidx.arch.core:core-testing 2.2.0
  • androidx.test.espresso:espresso-contrib 3.5.1
  • androidx.test.espresso:espresso-core 3.5.1
  • androidx.test.espresso:espresso-intents 3.5.1
  • androidx.test.ext:junit 1.1.5
  • androidx.test.uiautomator:uiautomator 2.3.0
  • androidx.work:work-testing 2.9.0
  • com.google.truth:truth 1.4.2
  • junit:junit 4.13.2
NavigationCodelab/gradle.properties
NavigationCodelab/settings.gradle
NavigationCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
NavigationCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • androidx.appcompat:appcompat 1.6.1
  • androidx.core:core-ktx 1.13.0
  • com.google.android.material:material 1.11.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.navigation:navigation-compose 2.7.7
  • androidx.arch.core:core-testing 2.2.0
  • androidx.test.espresso:espresso-contrib 3.5.1
  • androidx.test.espresso:espresso-core 3.5.1
TestingCodelab/gradle.properties
TestingCodelab/settings.gradle
TestingCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
  • composeOptions 1.5.10
  • androidx.appcompat:appcompat 1.6.1
  • androidx.core:core-ktx 1.13.0
  • com.google.android.material:material 1.11.0
  • androidx.fragment:fragment-ktx 1.6.2
  • org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.9.22
  • androidx.activity:activity-compose 1.9.0
  • androidx.arch.core:core-testing 2.2.0
  • androidx.test.espresso:espresso-contrib 3.5.1
  • androidx.test.espresso:espresso-core 3.5.1
TestingCodelab/app/build.gradle
  • androidx.compose:compose-bom 2024.04.01
ThemingCodelab/gradle.properties
ThemingCodelab/settings.gradle.kts
ThemingCodelab/build.gradle
  • com.android.tools.build:gradle 8.3.2
  • org.jetbrains.kotlin:kotlin-gradle-plugin 1.9.22
  • com.diffplug.spotless 6.25.0
ThemingCodelab/app/build.gradle
  • composeOptions 1.5.10
  • androidx.compose:compose-bom 2024.04.01
  • org.jetbrains.kotlinx:kotlinx-coroutines-android 1.8.0
  • androidx.appcompat:appcompat 1.6.1
  • androidx.activity:activity-ktx 1.9.0
  • androidx.core:core-ktx 1.13.0
  • androidx.activity:activity-compose 1.9.0
  • androidx.lifecycle:lifecycle-runtime-compose 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-savedstate 2.7.0
  • androidx.lifecycle:lifecycle-livedata-ktx 2.7.0
  • androidx.lifecycle:lifecycle-viewmodel-compose 2.7.0
  • androidx.test:rules 1.5.0
  • androidx.test:runner 1.5.2
gradle-wrapper
AccessibilityCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
AdaptiveUiCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
AdvancedStateAndSideEffectsCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
BasicLayoutsCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
MigrationCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
NavigationCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
TestingCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7
ThemingCodelab/gradle/wrapper/gradle-wrapper.properties
  • gradle 8.7

  • Check this box to trigger a request for Renovate to run again on this repository

[NavigationCodelab]Tests doesn't work

Description
I create the same RallyNavHostTest.kt as the Compose Navigation Codelab. All those tests never pass.

Steps to Reproduce
Just try the code in RallyNavHostTest.kt in branch end

Expected Results
Test passes when I hit the run button

Actual Results
Test fails after 45 seconds when run in an application module with the following stacktrace:

--------- beginning of main
08-15 16:02:04.725 10217  7167  7211 W Settings: Setting always_finish_activities has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
--------- beginning of system
08-15 16:02:04.731 10217  7167  7211 I Timeline: Timeline: Activity_launch_request time:420553368
08-15 16:02:04.733  1000  1300  2476 I ActivityTaskManager: START u0 {act=android.app.action.CHECK_ALLOW_START_ACTIVITY flg=0x800000 pkg=com.miui.securitycenter cmp=com.miui.securitycenter/com.miui.wakepath.ui.ConfirmStartActivity (has extras)} from uid 10217
08-15 16:02:04.733  1000  1300  2476 D ActivityTaskManagerServiceInjector: MIUILOG- Permission Denied Activity : Intent { act=android.app.action.CHECK_ALLOW_START_ACTIVITY flg=0x800000 pkg=com.miui.securitycenter cmp=com.miui.securitycenter/com.miui.wakepath.ui.ConfirmStartActivity (has extras) } pkg : com.demo.composenavi uid : 10217 tuid : 10084
08-15 16:02:04.734  1000  1300  2476 D MiuiMultiWindowAdapter: MiuiMultiWindowAdapter::getFreeformBlackList::sSmallWindowBlackList = [com.miui.securitycenter, com.miui.weather2, com.miui.miservice, com.android.calendar, com.xiaomi.calendar, com.android.contacts, com.miui.mishare.connectivity, com.android.settings, com.android.printspooler, com.miui.backup, com.miui.huanji, com.miui.calculator, com.android.deskclock, com.android.thememanager, com.mfashiongallery.emag, com.miui.virtualsim, com.miui.smarttravel, com.mi.health, com.android.camera, com.lbe.security.miui, com.miui.cleanmaster, com.miui.newhome, com.miui.voiceassist, com.android.phone, com.miui.yellowpage, com.android.updater, com.miui.tsmclient, com.miui.securitycore, com.xiaomi.account, com.xiaomi.shop, com.xiaomi.smarthome, com.mipay.wallet, com.xiaomi.youpin, com.xiaomi.hm.health, com.miui.bugreport, com.xiaomi.mibrain.speech, com.xiaomi.mimoji, com.xiaomi.scanner, com.duokan.phone.remotecontroller, com.miui.hybrid, com.android.incallui, com.miui.video, com.miui.videoplayer, com.miui.player, com.miui.fm, com.miui.packageinstaller, com.mi.android.globallauncher, com.mi.android.globallauncher-poco, com.google.android.dialer, com.google.android.apps.magazines, com.miui.compass, com.miui.greenguard, com.kiteguard, com.google.android.apps.prodcasts, com.google.ar.lens, com.xiangkan.android, com.android.bankabc, com.sohu.inputmethod.sogou, com.tencent.mtt, com.shyz.toutiao, com.netease.mc.mi, com.outfit7.talkingtomgoldrun.mi, com.doudz.mi, com.wepie.snake.new.mi, cn.jj, com.standddz002.mi, com.miHoYo.bh3.mi, com.qqgame.hlddz, com.happyelements.AndroidAnimal, com.minitech.miniworld.TMobile.mi, com.mfp.jelly.xiaomi, com.lilithgames.afk.mi, com.tencent.peng, com.teenpatti.hd.gold, blockpuzzle.jewelgames.jewelslegend, com.playgendary.tanks, com.chillingo.robberybobfree.android.row, com.episodeinteractive.android.catalog, com.playrix.township, com.ansangha.drdriving, com.google.android.youtube, com.gbits.atm.mi, com.tencent.tetris, com.sukhavati.gotoplaying.bubble.BubbleShooter.mint, com.block.puzzle.game.hippo.mi, com.youzu.bs.mi, com.appsomniacs.da2, com.miHoYo.Yuanshen, com.baidu.BaiduMap, com.google.android.googlequicksearchbox]
08-15 16:02:04.971  1000  1300  1459 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.927) failed {.code = ERROR_NOT_SUPPORTED, .description = }
08-15 16:02:04.974  1047   678  8850 E lsc_nvram: [do_mkdir] fail to mkdir [/sdcard/shading_otp]: 13[Permission denied] (do_mkdir){#65:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_40/lsc_mgr/LscUtil.h}
08-15 16:02:04.969  1047   678   678 W camerahalserver: type=1400 audit(0.0:859303): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:04.969  1047   678   678 W camerahalserver: type=1400 audit(0.0:859304): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:05.000  1000  1540  1540 D KeyguardUpdateMonitor: handleTimeUpdate
08-15 16:02:05.018  1000   549  1277 I BufferQueueProducer: [StatusBar#0](this:0x78e4074800,id:4,api:1,p:1540,c:549) queueBuffer: fps=0.66 dur=3031.75 max=3019.92 min=11.83
08-15 16:02:05.033  1000   509   509 I hwcomposer: [HWCDisplay] [Display_0 (type:1)] fps:0.658662,dur:3036.46,max:3020.04,min:16.42  
08-15 16:02:05.039  1000  1300  1432 W SensorService: Dropping 1 cached events (984/984) to save 1/1 new events. 6 events previously dropped
08-15 16:02:05.373  1000   689   689 D AALLightSensor: newLux = 1705, [1141, 1141] -> 1705
08-15 16:02:05.974  1047   678  8850 E lsc_nvram: [do_mkdir] fail to mkdir [/sdcard/shading_otp]: 13[Permission denied] (do_mkdir){#65:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_40/lsc_mgr/LscUtil.h}
08-15 16:02:05.969  1047   678   678 W camerahalserver: type=1400 audit(0.0:859305): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:05.969  1047   678   678 W camerahalserver: type=1400 audit(0.0:859306): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:06.975  1047   678  8850 E lsc_nvram: [do_mkdir] fail to mkdir [/sdcard/shading_otp]: 13[Permission denied] (do_mkdir){#65:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_40/lsc_mgr/LscUtil.h}
08-15 16:02:06.973  1047   678   678 W camerahalserver: type=1400 audit(0.0:859307): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:06.973  1047   678   678 W camerahalserver: type=1400 audit(0.0:859308): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:07.373  1000  1300  1432 W SensorService: Dropping 1 cached events (984/984) to save 1/1 new events. 6 events previously dropped
08-15 16:02:07.976  1047   678  8850 E lsc_nvram: [do_mkdir] fail to mkdir [/sdcard/shading_otp]: 13[Permission denied] (do_mkdir){#65:vendor/mediatek/proprietary/hardware/mtkcam/aaa/source/isp_40/lsc_mgr/LscUtil.h}
08-15 16:02:07.973  1047   678   678 W camerahalserver: type=1400 audit(0.0:859309): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:07.973  1047   678   678 W camerahalserver: type=1400 audit(0.0:859310): avc: denied { search } for name="0" dev="mmcblk0p46" ino=188421 scontext=u:r:mtk_hal_camera:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=0
08-15 16:02:07.988  1000  1300  1459 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.927) failed {.code = ERROR_NOT_SUPPORTED, .description = }
08-15 16:02:08.484 10084 23733 23733 I PowerHalWrapper: phwperfLockAcq
08-15 16:02:08.485 10084 23733 23733 I mtkperf_client: [perf_lock_acq] hdl:3787, dur:120, num:8
08-15 16:02:08.481 10084 23733 23733 W com.miui.home: type=1400 audit(0.0:859311): avc: denied { read } for name="boot_mode" dev="sysfs" ino=5141 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:sysfs_boot_mode:s0 tclass=file permissive=0
08-15 16:02:08.485 10084 23733 23733 I mtkperf_client: perf_lock_acq, hdl:3787, dur:120, tid:23733
08-15 16:02:08.486  1000   523   571 I mtkpower@1.0-impl: perfLockAcquire hdl:3787, duration:120, reserved:23733
08-15 16:02:08.481  1000   523   523 W mtkPowerManager: type=1400 audit(0.0:859312): avc: denied { getattr } for path="/proc/23733" dev="proc" ino=1920036 scontext=u:r:mtk_hal_power:s0 tcontext=u:r:platform_app:s0:c512,c768 tclass=dir permissive=0
08-15 16:02:08.481  1000   523   523 W mtkPowerManager: type=1400 audit(0.0:859313): avc: denied { search } for name="23733" dev="proc" ino=1920036 scontext=u:r:mtk_hal_power:s0 tcontext=u:r:platform_app:s0:c512,c768 tclass=dir permissive=0
08-15 16:02:08.486  1000   523   570 I powerd  : [powerd_req] POWER_MSG_PERF_LOCK_ACQ: hdl:3787, duration:120
08-15 16:02:08.487  1000   523   570 E libPowerHal: Could not open '/proc/23733/comm'
08-15 16:02:08.487  1000   523   570 E libPowerHal: error : 13, Permission denied
08-15 16:02:08.487  1000   523   570 I libPowerHal: perfLockAcq hdl:3787 pid:23733 duration:120 pid_exist:0 => new_hdl:3791
08-15 16:02:08.487  1000   523   570 I libPowerHal: 124: set gpu level: 0
08-15 16:02:08.487  1000   523   570 I libPowerHal: 124: set gpu level max: 0
08-15 16:02:08.487  1000   523   570 I libPowerHal: 124: cpu_ctrl set freq: 1600000 -1 1800000 -1
08-15 16:02:08.487  1000   523   570 I powerd  : [powerd_req] POWER_MSG_PERF_LOCK_ACQ: return hdl:3791
08-15 16:02:08.488 10084 23733 23733 I mtkperf_client: ret_hdl:3791
08-15 16:02:08.488 10084 23733 23733 D EventBus: No subscribers registered for event class com.miui.home.launcher.common.messages.EndSpringAnimatorMessage
08-15 16:02:08.488 10084 23733 23733 D EventBus: No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent
08-15 16:02:08.489 10084 23733 23733 D FeedSwipeController: touchState : 0 scrolling : false normalEditing : false WidgetThumbnailViewShowing : false UninstallDialogShowing : false isMinusScreenShowing: false
08-15 16:02:08.489 10084 23733 23733 D FeedSwipeController: ACTION_DOWN-> directions To Detect Scroll: 1=POSITIVE 2=NEGATIVE 3=BOTH 1
08-15 16:02:08.489 10084 23733 23733 D Launcher.Workspace: Workspace touch down
08-15 16:02:08.489 10084 23733 23733 D ScreenView_Workspace: onIntercept:0.0
08-15 16:02:08.489 10084 23733 23733 D ScreenView_Workspace: not intercept
08-15 16:02:08.504  1000   549  1277 I BufferQueueProducer: [com.miui.home/com.miui.home.launcher.Launcher#0](this:0x78e4
java.lang.AssertionError: Activity never becomes requested state "[STARTED, DESTROYED, CREATED, RESUMED]" (last lifecycle transition = "PRE_ON_CREATE")
	at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:338)
	at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:272)
	at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:195)
	at androidx.test.ext.junit.rules.ActivityScenarioRule.lambda$new$0$ActivityScenarioRule(ActivityScenarioRule.java:70)
	at androidx.test.ext.junit.rules.ActivityScenarioRule$$Lambda$0.get(ActivityScenarioRule.java:70)
	at androidx.test.ext.junit.rules.ActivityScenarioRule.before(ActivityScenarioRule.java:103)
	at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:46)
	at androidx.compose.ui.test.junit4.AndroidComposeTestRule$AndroidComposeStatement.evaluateInner(AndroidComposeTestRule.android.kt:361)
	at androidx.compose.ui.test.junit4.AndroidComposeTestRule$AndroidComposeStatement.evaluate(AndroidComposeTestRule.android.kt:350)
	at androidx.compose.ui.test.junit4.android.EspressoLink$getStatementFor$1.evaluate(EspressoLink.android.kt:63)
	at androidx.compose.ui.test.junit4.IdlingResourceRegistry$getStatementFor$1.evaluate(IdlingResourceRegistry.jvm.kt:160)
	at androidx.compose.ui.test.junit4.android.ComposeRootRegistry$getStatementFor$1.evaluate(ComposeRootRegistry.android.kt:150)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	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.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 org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
	at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:444)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2198)

AndroidX Test and Android OS Versions

    junit_version = '4.13.2'
    junit_ext_version = '1.1.3'
    truth_version = '1.0.1'
    espresso_version = '3.4.0'
    compose_version = '1.0.1'
    coreTestingVersion = '2.1.0'
    coroutines_test_version = '1.5.0'

    testImplementation "junit:junit:$junit_version"
    testImplementation "com.google.truth:truth:$truth_version"
    androidTestImplementation "androidx.test.ext:junit:$junit_ext_version"
    androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
    androidTestImplementation "androidx.test.espresso:espresso-contrib:$espresso_version"
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
    androidTestImplementation "androidx.arch.core:core-testing:$coreTestingVersion"
    androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_test_version"

Run on a RedMI 9 running MIUI 12.0.4 based on Android 10.

[NavigationCodelab] Tests won't run due to Manifest Merger Fail

Problem : Compilation fails when trying to run RallyNavHostTest
Reproduction Steps : Checkout origin/end. Sync gradle, rebuild and try to run Rally NavHost Test.

Output :

> Task :app:processDebugAndroidTestManifest FAILED
/Users/chris/Documents/Development/android/android-compose-codelabs/NavigationCodelab/app/build/intermediates/tmp/manifest/androidTest/debug/tempFile1ProcessTestManifest1171303151557894269.xml Error:
	android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
/Users/chris/Documents/Development/android/android-compose-codelabs/NavigationCodelab/app/build/intermediates/tmp/manifest/androidTest/debug/tempFile1ProcessTestManifest1171303151557894269.xml Error:
	android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
/Users/chris/Documents/Development/android/android-compose-codelabs/NavigationCodelab/app/build/intermediates/tmp/manifest/androidTest/debug/tempFile1ProcessTestManifest1171303151557894269.xml Error:
	android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.


Execution failed for task ':app:processDebugAndroidTestManifest'.
> Manifest merger failed with multiple errors, see logs

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugAndroidTestManifest'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:188)
	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:186)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:174)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
	at com.android.build.gradle.tasks.ProcessTestManifest.handleMergingResult(ProcessTestManifest.kt:331)
	at com.android.build.gradle.tasks.ProcessTestManifest.mergeManifestsForTestVariant(ProcessTestManifest.kt:301)
	at com.android.build.gradle.tasks.ProcessTestManifest.doFullTaskAction(ProcessTestManifest.kt:111)
	at com.android.build.gradle.internal.tasks.IncrementalTask.handleIncrementalInputs(IncrementalTask.kt:110)
	at com.android.build.gradle.internal.tasks.IncrementalTask.access$handleIncrementalInputs(IncrementalTask.kt:64)
	at com.android.build.gradle.internal.tasks.IncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:62)
	at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
	at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction$gradle_core(IncrementalTask.kt:141)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskInputsTaskAction.doExecute(IncrementalTaskInputsTaskAction.java:47)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
	at org.gradle.api.internal.project.taskfactory.AbstractIncrementalTaskAction.execute(AbstractIncrementalTaskAction.java:25)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:506)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:491)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:474)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:106)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:271)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:249)
	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:83)
	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:37)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:47)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:37)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:54)
	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)
	at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
	at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:85)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:42)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:106)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:51)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:72)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:46)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)
	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:284)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:174)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

Further Details : There is no androidTest/AndroidManifest.xml

[StateCodelab] The usage of `rememer` in `LazyColumn` in StateCodelab doesn't seem to work or make sense

The usage of rememer in LazyColumn in StateCodelab doesn't seem to work or make sense to me.

To make the problem more obvious, I made changes to the code in the following way:

First I added 100 items initially in onCreate:

for (i in 0 until 100) todoViewModel.addItem(TodoItem(i.toString()))

Then I edited the task text to also show the icon alpha in text:

Text(todo.task + " (icon alpha: $iconAlpha)")

Now if launch the app, scroll to the bottom of the list and then back to the top, the icon alpha actually changes.

According to the comments on remember and LazyColumn in the codelab tutorial:

Remember stores values in the Composition, and will forget them if the composable that called remember is removed.

It only composes the items currently on the screen, and disposes of them as soon as they leave.

I guess the TodoRows are actually disposed along with its remembered state and then recreated, rather than recomposed, and that's why remember doesn't work here.

[AdvancedStateAndSideEffects] Cannot access 'java.io.Serializable' which is a supertype of 'kotlin.String'. Check your module classpath for missing or conflicting dependencies

Regarding codelab Advanced State and Side Effects in Jetpack Compose, I downloaded the Zip file presented on the codelab, and openned the project in Android Studio. The following error is showing:

Cannot access 'java.io.Serializable' which is a supertype of 'kotlin.String'. Check your module classpath for missing or conflicting dependencies

Can you help me solve this issue?

Thanks

[StateCodelab] Final result not working as intended

Hi,

I have done the state codelab last weekend and the final result isn't working as intended. When you try to edit a todo, it doesn't let you change the todo task name, only one letter can be changed as displayed in the video. I believe that's mostly because it doesn't implement a unidirectional data flow as there is two separates states, one for the todo list and one for the edit state. But it also could be only a compose issue that I don't understand.

To reproduce, I have executed the app on a real device and I have tried both the final module and doing the tutorial step by step it happens either case

device-2021-03-07-125403.mp4

Please let me know if you need more info, I am very interested by your solution
Flo

[TestingCodelab] (Optional Exercise): How to access state in RallyApp

Hi, in the hints for Step 7, it says

The scope of the test needs to include the state, which is owned by RallyApp.

I looked at the implementation of RallyApp, and I can see that the state is stored inside the component, so I don't know how I can access it to assert on its value.

Am I supposed to modify the RallyApp component to move the state elsewhere, and if so, where? In a ViewModel?

Jetpack Compose Basics tutorial doesn't mention changing app theme

The tutorial here implicitly depends on using a day/night theme in themes.xml: https://developer.android.com/codelabs/jetpack-compose-basics

For example, themes.xml in the solution contains this code:

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.BasicsCodelab" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    </style>

    <style name="Theme.BasicsCodelab.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="Theme.BasicsCodelab.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="Theme.BasicsCodelab.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>

However, creating a new Compose project with Android Studio results in this theme:

<resources>

    <style name="Theme.BasicsCodelab" parent="android:Theme.Material.Light.NoActionBar">
        <item name="android:statusBarColor">@color/purple_700</item>
    </style>
</resources>

This leads to differences in expected behavior and actual behavior from following the tutorial. For example, components won't display a dark background without wrapping them in a compose Surface. The system bar also won't follow dark mode and there may also be differences with system dialogs and other components.

[TestingCodelab and NavigationCodelab] Running tests always fails

Hi, the tests for both codelabs TestingCodelab and NavigationCodelab are always failing.
I get the same error for both codelabs (see below). This error is also thrown no matter if i run the solution or the starter code with inlcuded dependencies. Upgrading gradle also has no effect.

Device info:
Device Name: LGE LG-H870
OS Version: 28
RAM: 3.9 GB

Logs:
java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.compose.rally.test/androidx.activity.ComponentActivity }
at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:402)
at androidx.test.core.app.InstrumentationActivityInvoker.startActivity(InstrumentationActivityInvoker.java:437)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:195)
at androidx.test.ext.junit.rules.ActivityScenarioRule.lambda$new$0$ActivityScenarioRule(ActivityScenarioRule.java:70)
at androidx.test.ext.junit.rules.ActivityScenarioRule$$Lambda$0.get(ActivityScenarioRule.java:70)
at androidx.test.ext.junit.rules.ActivityScenarioRule.before(ActivityScenarioRule.java:103)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50)
at androidx.compose.ui.test.junit4.AndroidComposeTestRule$apply$1$evaluate$1.invoke(AndroidComposeTestRule.android.kt:148)
at androidx.compose.ui.test.junit4.AndroidComposeTestRule$apply$1$evaluate$1.invoke(AndroidComposeTestRule.android.kt:147)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$AndroidComposeUiTestImpl.withDisposableContent(ComposeUiTest.android.kt:476)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1$1$1.invoke(ComposeUiTest.android.kt:294)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withTextInputService(ComposeUiTest.android.kt:360)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withTextInputService(ComposeUiTest.android.kt:217)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1$1.invoke(ComposeUiTest.android.kt:293)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withComposeIdlingResource(ComposeUiTest.android.kt:347)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withComposeIdlingResource(ComposeUiTest.android.kt:217)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1$1.invoke(ComposeUiTest.android.kt:292)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withWindowRecomposer(ComposeUiTest.android.kt:321)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withWindowRecomposer(ComposeUiTest.android.kt:217)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1$1.invoke(ComposeUiTest.android.kt:291)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.withTestCoroutines(ComposeUiTest.android.kt:334)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.access$withTestCoroutines(ComposeUiTest.android.kt:217)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1$1.invoke(ComposeUiTest.android.kt:290)
at androidx.compose.ui.test.junit4.EspressoLink.withStrategy(EspressoLink.android.kt:66)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1$1.invoke(ComposeUiTest.android.kt:289)
at androidx.compose.ui.test.junit4.IdlingResourceRegistry.withRegistry(IdlingResourceRegistry.jvm.kt:157)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment$runTest$1.invoke(ComposeUiTest.android.kt:288)
at androidx.compose.ui.test.junit4.ComposeRootRegistry.withRegistry(ComposeRootRegistry.android.kt:146)
at androidx.compose.ui.test.AndroidComposeUiTestEnvironment.runTest(ComposeUiTest.android.kt:287)
at androidx.compose.ui.test.junit4.AndroidComposeTestRule$apply$1.evaluate(AndroidComposeTestRule.android.kt:147)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:444)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2152)

Layout Codelab, Step 5, link to Scaffold

https://developer.android.com/codelabs/jetpack-compose-layouts?return=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fcompose%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fjetpack-compose-layouts#4

Step 5

"Compose comes with built-in Material Component composables that you can use to create your app. The most high-level composable is Scaffold."

Scaffold is a link that takes you here https://cs.android.com/androidx/platform/frameworks/support/+/androidx-master-dev:ui/ui-material/src/main/java/androidx/ui/material/Scaffold.kt

When you go there it says

The file does not exist at this commit
The file you have selected did not exist at this point in history. It was deleted in commit fdf0807.

[AnimationCodelab] Gesture not working properly

Hi,

during the last step of the Animation Codelab I had the issue that the gesture for removing a task doesn't work properly. What happens is that the task stops moving every time my finger moves up or down a bit because the Column scrolls and apparently the event doesn't reach the TaskRow.

What I would expect is that the Column doesn't scroll while I am swiping away the task, much like the swiping gestures in Gmail. Also as long as the gesture started inside the TaskRow it shouldn't matter if the touch leaves the area of the task row.

Here is a video of the issue:
https://user-images.githubusercontent.com/21011840/112719606-f72f3880-8ef9-11eb-8b4a-88d3e791c6b8.mp4

Also I don't know if this is the right place to give feedback on the Codelab but the last section about gestures felt incomplete to me. It felt like I was just running through a list of todos and the Codelab gave some brief information on why I was doing what I was doing but I didn't really understand it.

I think there are two options for how to improve:

  1. Show the user the issue with every step. Encourage him to check out the app on his phone to see what is not working and what needs to be improved. Then explain how to solve that instead of just doing so at the end to see the finished product.
  2. A separate compose Codelab about gestures. I feel like gestures can be a really complex topic but they are also an essential component of many apps so they might deserve their own Codelab.

Other than that I really enjoyed learning about Jetpack Compose and the Codelabs are great!
Thanks!

-Moritz

Preview not rendering

I just downloaded and opened the BasicsCodelab.But preview not rendering properly but app works well.

PFA for the preview rendered.

is this known issue ?
Screenshot 2021-07-07 at 8 12 55 PM

Even for single text also
Screenshot 2021-07-07 at 8 19 00 PM

Layouts Codelab "rounded corner ripple"

In the Layout Codelab I don't get this part

For example, if you wanted to add some outer spacing, change the background color of the composable, and round the corners of the ripple, you could use the following code:

specifically the "round the corners of the ripple". This is the code snippet they're talking about:

    Row(modifier
        .padding(8.dp)
        .clip(RoundedCornerShape(4.dp))
        .background(MaterialTheme.colors.surface)
        .clickable(onClick = { /* Ignoring onClick */ })
        .padding(16.dp)
    ) {

We're not actually rounding the corner of the ripple, we're more so rounding the corner of the row, and so the ripple only goes up to the clipped area which gives you a rounded corner ripple... right?

[NavigationCodelab] Arguments retrieved by navBackStackEntry

Hi, the accountType retrieved by the navBackStackEntry in the Rally app of the Navigation Codelab only works the first time. Afterwards, no matter which account I click, it goes to the single account I clicked the first time. The accountType value doesn't change :( Any help would be welcomed.

StateCodelab can't remove last character from the TodoInputText

When you have some text in the TextField and then hit delete on the keyboard you are not able to delete the last character. If you click delete when there is one character left, the character stays and the next character you type will be placed to the left of the character left.

Ex:
type: Hello World_
delete * 10: H_
delete * 1: _H
type: ell_H

Manifest merger failed with multiple errors while compiling the project

I'm facing this issue while compiling the project and trying to run the test.

I didn't do any modification. Just open the project and run.

The log is this:

> Task :app:processDebugAndroidTestManifest FAILED
/Users/jesusdmedinac/software/android/android-compose-codelabs/TestingCodelab/app/build/intermediates/tmp/manifest/androidTest/debug/tempFile1ProcessTestManifest6578991288352733637.xml Error:
	android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
/Users/jesusdmedinac/software/android/android-compose-codelabs/TestingCodelab/app/build/intermediates/tmp/manifest/androidTest/debug/tempFile1ProcessTestManifest6578991288352733637.xml Error:
	android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
/Users/jesusdmedinac/software/android/android-compose-codelabs/TestingCodelab/app/build/intermediates/tmp/manifest/androidTest/debug/tempFile1ProcessTestManifest6578991288352733637.xml Error:
	android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.


Execution failed for task ':app:processDebugAndroidTestManifest'.
> Manifest merger failed with multiple errors, see logs

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

I'm trying to run the test on the class AnimatingCircleTests on the TestingCodelab app.

Any suggestion about how to solve this issue?

[AdvancedStateAndSideEffectsCodelab] injected Modifier in CraneTabBar not used

You are injecting modifier - Row(modifier), and then you call Modifier.width(8.dp), Modifier.padding(8.dp) etc... instead of modifier.width(8.dp), modifier.padding(8.dp) etc.
Is it a typo, or it was intentional? If so, what's the benefit and why injecting Modifier at all (in this case)?

@Composable
fun CraneTabBar(
    modifier: Modifier = Modifier,
    onMenuClicked: () -> Unit,
    children: @Composable (Modifier) -> Unit
) {
    Row(modifier) {
        // Separate Row as the children shouldn't have the padding
        Row(Modifier.padding(top = 8.dp)) {
            Image(
                modifier = Modifier
                    .padding(top = 8.dp)
                    .clickable(onClick = onMenuClicked),
                painter = painterResource(id = R.drawable.ic_menu),
                contentDescription = stringResource(id = R.string.cd_menu)
            )
            Spacer(Modifier.width(8.dp))
            Image(
                painter = painterResource(id = R.drawable.ic_crane_logo),
                contentDescription = null
            )
        }
        children(
            Modifier
                .weight(1f)
                .align(Alignment.CenterVertically)
        )
    }
}

[NavigationCodelab] _viaUI Tests fail

Hi,
I just went through the codelab and couldn't figure out on my own why the _viaUI Tests would not work, I then switched over to the end branch to discover the tests there also fail.
Watching the emulator during the test and commenting them out one by one, I saw _callingNavigate test to actually change the screen, but the _viaUI tests don't. Any ideas ? Is this working for anyone ?

[MigrationCodeLab] Instrumentation tests won't build because of duplicate dependencies

The issue is similar to android/android-test#861 (comment). I was able to remove the truth library and get it working.

Duplicate class org.checkerframework.checker.compilermsgs.qual.CompilerMessageKey found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.compilermsgs.qual.CompilerMessageKeyBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.compilermsgs.qual.UnknownCompilerMessageKey found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.AwtAlphaCompositingRule found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.AwtColorSpace found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.AwtCursorType found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.AwtFlowLayout found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.Fenum found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.FenumBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.FenumTop found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.FenumUnqualified found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.PolyFenum found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingBoxOrientation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingCompassDirection found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingElementOrientation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingHorizontalOrientation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingSplitPaneOrientation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingTextOrientation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingTitleJustification found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingTitlePosition found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.fenum.qual.SwingVerticalOrientation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.FormatUtil found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.FormatUtil$Conversion found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.FormatUtil$ExcessiveOrMissingFormatArgumentException found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.FormatUtil$IllegalFormatConversionCategoryException found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.ConversionCategory found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.Format found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.FormatBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.FormatMethod found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.InvalidFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.ReturnsFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.formatter.qual.UnknownFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.AlwaysSafe found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.PolyUI found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.PolyUIEffect found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.PolyUIType found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.SafeEffect found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.SafeType found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.UI found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.UIEffect found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.UIPackage found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.guieffect.qual.UIType found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18n.qual.LocalizableKey found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18n.qual.LocalizableKeyBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18n.qual.Localized found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18n.qual.UnknownLocalizableKey found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18n.qual.UnknownLocalized found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.I18nFormatUtil found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.I18nFormatUtil$I18nConversion found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.I18nFormatUtil$MessageFormatParser found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nChecksFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nConversionCategory found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nFormatBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nFormatFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nInvalidFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nMakeFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nUnknownFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.i18nformatter.qual.I18nValidFormat found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.EnsuresLTLengthOf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.EnsuresLTLengthOfIf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.GTENegativeOne found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.HasSubsequence found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.IndexFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.IndexOrHigh found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.IndexOrLow found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LTEqLengthOf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LTLengthOf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LTOMLengthOf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LengthOf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LessThan found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LessThanBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LessThanUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LowerBoundBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.LowerBoundUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.NegativeIndexFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.NonNegative found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.PolyIndex found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.PolyLength found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.PolyLowerBound found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.PolySameLen found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.PolyUpperBound found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.Positive found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SameLen found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SameLenBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SameLenUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SearchIndexBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SearchIndexFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SearchIndexUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SubstringIndexBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SubstringIndexFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.SubstringIndexUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.UpperBoundBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.index.qual.UpperBoundUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.initialization.qual.FBCBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.initialization.qual.Initialized found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.initialization.qual.NotOnlyInitialized found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.initialization.qual.UnderInitialization found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.initialization.qual.UnknownInitialization found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.interning.qual.InternMethod found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.interning.qual.Interned found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.interning.qual.InternedDistinct found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.interning.qual.PolyInterned found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.interning.qual.UnknownInterned found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.interning.qual.UsesObjectEquals found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.EnsuresLockHeld found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.EnsuresLockHeldIf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.GuardSatisfied found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.GuardedBy found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.GuardedByBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.GuardedByUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.Holding found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.LockHeld found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.LockPossiblyHeld found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.LockingFree found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.MayReleaseLocks found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.lock.qual.ReleasesNoLocks found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.NullnessUtil found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.Opt found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.AssertNonNullIfNonNull found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.EnsuresKeyFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.EnsuresKeyForIf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.EnsuresNonNull found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.EnsuresNonNullIf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.KeyFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.KeyForBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.MonotonicNonNull found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.NonNull found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.Nullable found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.PolyKeyFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.PolyNull found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.RequiresNonNull found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.nullness.qual.UnknownKeyFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.optional.qual.MaybePresent found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.optional.qual.PolyPresent found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.optional.qual.Present found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.propkey.qual.PropertyKey found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.propkey.qual.PropertyKeyBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.propkey.qual.UnknownPropertyKey found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.RegexUtil found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.RegexUtil$CheckedPatternSyntaxException found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.qual.PartialRegex found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.qual.PolyRegex found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.qual.Regex found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.qual.RegexBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.regex.qual.UnknownRegex found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.BinaryName found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.ClassGetName found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.ClassGetSimpleName found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.DotSeparatedIdentifiers found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.FieldDescriptor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.FieldDescriptorForPrimitive found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.FqBinaryName found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.FullyQualifiedName found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.Identifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.InternalForm found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.MethodDescriptor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.PolySignature found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.SignatureBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signature.qual.SignatureUnknown found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.SignednessUtil found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.SignednessUtilExtra found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.PolySigned found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.Signed found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.SignedPositive found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.SignednessBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.SignednessGlb found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.UnknownSignedness found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.signedness.qual.Unsigned found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.tainting.qual.PolyTainted found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.tainting.qual.Tainted found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.tainting.qual.Untainted found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.UnitsTools found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.A found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Acceleration found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Angle found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Area found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.C found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Current found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.K found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Length found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Luminance found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Mass found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.MixedUnits found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.PolyUnit found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Prefix found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Speed found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Substance found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Temperature found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.Time found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.UnitsBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.UnitsMultiple found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.UnitsRelations found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.UnknownUnits found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.cd found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.degrees found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.g found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.h found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.kg found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.km found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.km2 found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.kmPERh found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.m found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.m2 found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.mPERs found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.mPERs2 found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.min found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.mm found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.mm2 found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.mol found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.radians found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.checker.units.qual.s found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.aliasing.qual.LeakedToResult found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.aliasing.qual.MaybeAliased found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.aliasing.qual.MaybeLeaked found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.aliasing.qual.NonLeaked found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.aliasing.qual.Unique found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.ClassBound found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.ClassVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.ClassValBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.ForName found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.GetClass found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.GetConstructor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.GetMethod found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.Invoke found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.MethodVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.MethodValBottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.NewInstance found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.UnknownClass found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.reflection.qual.UnknownMethod found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.subtyping.qual.Bottom found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.subtyping.qual.Unqualified found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportCall found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportCreation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportInherit found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportOverride found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportReadWrite found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportUnqualified found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportUse found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.util.report.qual.ReportWrite found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.ArrayLen found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.ArrayLenRange found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.BoolVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.BottomVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.DoubleVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.EnsuresMinLenIf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.IntRange found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.IntRangeFromGTENegativeOne found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.IntRangeFromNonNegative found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.IntRangeFromPositive found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.IntVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.MinLen found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.MinLenFieldInvariant found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.PolyValue found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.StaticallyExecutable found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.StringVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.common.value.qual.UnknownVal found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.dataflow.qual.Deterministic found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.dataflow.qual.Pure found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.dataflow.qual.Pure$Kind found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.dataflow.qual.SideEffectFree found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.dataflow.qual.TerminatesExecution found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.AnnotatedFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.CFComment found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.ConditionalPostconditionAnnotation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.Covariant found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.DefaultFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.DefaultQualifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.DefaultQualifierForUse found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.DefaultQualifierInHierarchy found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.EnsuresQualifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.EnsuresQualifierIf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.FieldInvariant found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.FromByteCode found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.FromStubFile found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.IgnoreInWholeProgramInference found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.InheritedAnnotation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.InvisibleQualifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.JavaExpression found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.LiteralKind found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.MonotonicQualifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.NoDefaultQualifierForUse found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.PolymorphicQualifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.PostconditionAnnotation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.PreconditionAnnotation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.QualifierArgument found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.QualifierForLiterals found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.RelevantJavaTypes found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.RequiresQualifier found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.StubFiles found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.SubtypeOf found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.TargetLocations found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.TypeKind found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.TypeUseLocation found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.Unused found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.qual.UpperBoundFor found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)
Duplicate class org.checkerframework.framework.util.PurityUnqualified found in modules checker-3.1 (org.checkerframework:checker:3.1.1) and checker-qual-3.9.1 (org.checkerframework:checker-qual:3.9.1)

Go to the documentation to learn how to Fix dependency resolution errors.

[StateCodelab] Step 12 - Crash when removing edited item

Steps to reproduce:

  1. Add item
  2. Edit item
  3. Press remove
  4. Crash

Stacktrace:

2021-03-08 15:06:57.750 14280-14280/com.example.statecodelab E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.statecodelab, PID: 14280
java.lang.ArrayIndexOutOfBoundsException: length=8030; index=-2
at androidx.compose.runtime.SlotTableKt.groupSize(SlotTable.kt:2558)
at androidx.compose.runtime.SlotTableKt.access$groupSize(SlotTable.kt:1)
at androidx.compose.runtime.SlotReader.groupSize(SlotTable.kt:596)
at androidx.compose.runtime.ComposerImpl.recomposeToGroupEnd(Composer.kt:2215)
at androidx.compose.runtime.ComposerImpl.skipCurrentGroup(Composer.kt:2499)
at androidx.compose.runtime.ComposerImpl.recompose$runtime_release(Composer.kt:2625)
at androidx.compose.runtime.CompositionImpl.recompose(Composition.kt:406)
at androidx.compose.runtime.Recomposer.performRecompose(Recomposer.kt:724)
at androidx.compose.runtime.Recomposer.access$performRecompose(Recomposer.kt:100)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:437)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$2.invoke(Recomposer.kt:411)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:34)
at androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:112)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:43)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:72)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:970)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:727)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

StateColab issue with TodoItemInlineEditor on Android 7.0

In devices or emulators with Android 7.0 it is impossible to edit properly the text of an item in the todo list.

The problem can be reproduced through the following steps:

  1. checkout of the codelab
  2. install the "finished" module app on the device or emulator with Android 7.0 (24).
  3. click on the button "Add random Item".
  4. click on the task that has just been added to the list
  5. try editing the text

It is impossible to add to the text, but it is possible to delete characters.

In other physical devices or emulators with versions different from Android 7.0 (24) everything works as expected.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json
Error type: Duplicate keys in JSON
Message: "Syntax error: duplicated keys \"ignoreDeps\" near Deps\": [\n "

StateColab imeAction does not add TodoItem

When clicking the imeAction Done on the keyboard the submit callback is run but the text is always blank.

val submit = {
    if (text.isNotBlank()) {
        onItemComplete(TodoItem(text, icon))
        onTextChange("")
        onIconChange(TodoIcon.Default)
    }
}

When clicking imeaction Done the statement

if (text.isNotBlan())

is always false, even if there is text in the textfield.

The strange thing is that the TodoEditButton has the exact same callback and it works every time.

The Simplified Chinese version of codelab does not have a corresponding source code

The Simplified Chinese version of codelab does not have a corresponding source code

The English version was last updated on May 16, 2022 and the Simplified Chinese version was last updated on February 24, 2022.

I suggest that unless the codelab in different languages can be updated at the same time, it is better to leave only the correct (latest) version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.