Android Studio - Electric Eel | 2022.1.1 Canary 9 is now available in the Canary and Dev channels.

If you already have an Android Studio build on the Canary or Dev channel, you can get the update by clicking Help > Check for Update (or Android Studio > Check for Updates on macOS). Otherwise, you can download it here.

For information on new features and changes in all preview builds of Android Studio Electric Eel, see the Android Studio Preview release notes. For details of bugs fixed in each preview release, see previous entries on this blog.

Updates to Live Edit

In Android Studio Electric Eel, you can use Live Edit to deploy code changes to your composable to an emulator or device in real time. You don't have to wait for builds or deployments to be completed, so you can make faster progress in creating your app.

Starting with Electric Eel Canary 9, if your project is using Compose version 1.2 or higher, Live Edit no longer needs to reset composition after code changes. Only the first code change made to a given file resets composition. Subsequent edits don't reset composition.

General fixes and features

The following is list of general fixes in Android Studio Electric Eel Canary 9. These are a result of your bug reports, which help us to make Android Studio better. If you encounter a problem, let us know by reporting a bug. You can also vote for an existing issue to indicate that it also affects you.

Android Gradle Plugin
Lint
  • Issue #233912817: Lint UnusedIds incorrectly fails when using ViewBinding as suggested by official docs
Android Gradle Plugin
Compose Preview
  • Issue #234054935: androidx.media3.exoplayer.offline.Download causes no preview
  • Issue #235848118: Recursive call of PreviewParameterProvider causes NoSuchMethodException or empty preview without error
Deployment
  • Issue #237569032: Deploying Compose Preview to device requires two gradle builds
Design Tools
  • Issue #227616016: Layout validation: "androidx.viewpager2.widget.ViewPager2 is partially hidden in layout"
Import/Sync
  • Issue #236114272: Make applicationIds for all variants available at sync time
  • Issue #240400766: KTIJ-22303: Mpp and Kotlin model cacheOriginIdentifier's do not match
  • Issue #232001921: Editor of unit test source fails to resolve string resource declared in another module
  • Issue #239800707: Sync cancelled/crashes at data importers phase is never reported to the main sync listener
  • Issue #236701223: Getting IDEA Project structure dialog
  • Issue #231701341: KMP with HMPP common code not resolving with Android-only target
  • Issue #237043557: Cryptic JDK location warning suggesting a problem but not defining it
Lint
  • Issue #237421695: Wrong lint warning for `@Parcelize` annotation on sealed class.
  • Issue #236834039: `./gradlew lintDebug` not always printing specific violations
  • Issue #239554951: Lint's ignoreWarnings flag (-w) ignores warnings but not informational severity
  • Issue #239504900: Lint "AutoCloseable used without 'try'-with-resources" and "This TypedArray should be recycled after use with #recycle()" conflict
  • Issue #237807241: Lint initializes UAST from reporting task which should be invalid
  • Issue #237813416: Android Lint Report tasks are never up-to-date
Lint Integration
  • Issue #236524525: AndroidLintAnalysisTask has cache misses due to relative path normalization
Logcat
Project View
Run