Jetpack compose can't preview after updating to 1.0.0-rc01
Update 07/20/2021:Just download and use the latest AS to fix the problem
They splitted some packages in rc01 but per @CommonsWare comment (all credits to him) it seems there is a problem with Android Studio version itself.You have 2 options:
- Downgrade to beta09 until AS ArcticFox RC1 is out
- Try the suggested workaround, use AS Arctic Fox Beta 5 leaving all compose dependencies to
1.0.0-rc01
version and downgrade onlyui-tooling
to1.0.0-beta09
(confirmed by comments).
Extra details
Here you can find all the classes they moved in 1.0.0-rc01
https://android-review.googlesource.com/c/platform/frameworks/support/+/1739498 and the explanation on why this has been decided.
In short, you can now do this for some particular optimized scenarios (which should not be the default case):
debugImplementation "androidx.compose.ui:ui-tooling:1.0.0-rc01"implementation "androidx.compose.ui:ui-tooling-preview:1.0.0-rc01"
Update: This is no longer needed with Android Studio Bumblebee | 2021.1.1 Canary 6 and Android Gradle Plugin 7.1.0-alpha06. Note: Canary 4 already fixed this issue but required a broken version of AGP. This is now also resolved.
In addition to the above answers: here is how to force the ui-tooling version in gradle:
implementation("androidx.compose.ui:ui-tooling:$compose_version") { version { // TODO: Remove this when Android Studio has become compatible again // Android Studio Bumblebee | 2021.1.1 Canary 3 is not compatible with module ui-tooling 1.0.0-rc01 or higher. // The Run Configuration for Composable Previews that Android Studio makes expects a PreviewActivity class // in the `androidx.compose.ui.tooling.preview` package, but it was moved in 1.0.0-rc01, and thus causes error: // "androidx.compose.ui.tooling.preview.PreviewActivity is not an Activity subclass or alias". // For more, see: https://stackoverflow.com/questions/68224361/jetpack-compose-cant-preview-after-updating-to-1-0-0-rc01 strictly("1.0.0-beta09") }}
To people still get the error when downgrade the ui-tooling library:
Make sure you don't have library that have dependency on ui-tooling:1.0.0-rc01You can find that out by using ./gradlew app:dependencies in your android studio terminal
In my case, I'm using com.google.accompanist:accompanist-swiperefresh:13.0.0 which depend on ui-tooling:1.0.0-rc01. Preview is working when I downgrade to accompanist-swiperefresh:12.0.0