android / codelab-android-compose Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
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.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
composeOptions
, org.jetbrains.kotlin.android
, org.jetbrains.kotlin:kotlin-gradle-plugin
)composeOptions
, org.jetbrains.kotlin:kotlin-stdlib-jdk8
, org.jetbrains.kotlin:kotlin-gradle-plugin
)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
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
https://github.com/googlecodelabs/android-compose-codelabs/blob/398ad6d38a176cb342f27e60f31bdd021f19c09e/AnimationCodelab/finished/src/main/java/com/example/android/codelab/animation/ui/home/Home.kt#L385
I fixed it with @ExperimentalMaterialApi annotation
The sample has been adapted to the dark theme, so Force Dark should be disabled. Otherwise, it will cause display problems on some mobile phones.
see Force Dark
I think all gesture events should be consumed in the swipeToDismiss
in Part 4 of the Accessibility Codelab, there is a GIF that shows what looks like a Toast containing text that Talkback also reads. How do you enable that?
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.
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
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 TodoRow
s are actually disposed along with its remembered state and then recreated, rather than recomposed, and that's why remember
doesn't work here.
The document suggests to check the preview of HomeTabBar
with PreviewHomeTabBar
like below but it seems there is no such Composable in the "start" version of the code.
Try clicking on the icon for the PreviewHomeTabBar composable. Then click on the "Start animation inspection" icon at the top right corner of the interactive mode. This opens a new "Animations" pane.
https://developer.android.com/codelabs/jetpack-compose-animation#5
may be a problem with Surface
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
Not an issue with the code, but rather the CodeLab text. Specifically the section on implementing the StaggeredGrid: https://codelabs.developers.google.com/codelabs/jetpack-compose-layouts/index.html?index=..%2F..index#6
It references HorizontalScroller
. I believe this should now be ScrollableRow
.
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
Please let me know if you need more info, I am very interested by your solution
Flo
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?
Reseaching
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.
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)
It's never assigned outside initialization. The codelab oddly emphasizes the var with private setter, when it should actually be val. I do not see a conceptual reason for making it var.
See #178
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.
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:
Other than that I really enjoyed learning about Jetpack Compose and the Codelabs are great!
Thanks!
-Moritz
Click 'run app' and show 'Unable to determine application id: com.android.tools.idea.run.ApkProvisionException'
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?
The state codelab is using deprecated composables such as LazyColumnFor, we should update this and perhaps turn on warnings as errors.
https://github.com/googlecodelabs/android-compose-codelabs/blob/398ad6d38a176cb342f27e60f31bdd021f19c09e/AnimationCodelab/finished/src/main/java/com/example/android/codelab/animation/ui/home/Home.kt#L646
probably due to the new version of compose or smth else
I moved "swipeToDismiss" to modifier from Row in the same method, but it doesn't work properly, although swipe is working now.
Could you please help me to figure out, what is wrong?
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.
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
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?
Should be merged into dev_alpha06_end
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)
)
}
}
Should be merged into dev_alpha06_end
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 ?
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.
In the Basics Codelab, there's an image in Part 12 showing a preview of the list alongside the Onboarding screen preview. I'm wondering how DefaultPreview
can be made to display the list if it can only be shown once the continue button is clicked? Here's how the preview looks on my end:
Steps to reproduce:
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)
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:
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.
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 "
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.
In step 3 of Animation Codelab, the tabPage should be of type TabPage, not the Int as shown in the screenshot
We should run spotlessCheck on the code, to make sure there's no issues in the 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.
This should really be minSdkVersion and targetSdkVersion 30, but is currently set to 28
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.