Android Studio Changelog

What's new in Android Studio 2024.1.1 Canary 6

Apr 19, 2024
  • Fixed Issues:
  • Android Gradle Plugin:
  • DexingNoClasspathTransform (minSdk >= 24) with Java 11 target fails due to missing nest members
  • C++ Build:
  • [Feature request] Better explanation or documentation of ndk-build options
  • Compose Preview:
  • Using getSystemService in Composable breaks compose previews
  • Connection Assistant:
  • Trouble shoot device connection menu is empty
  • Gradle:
  • Cannot locate tasks that match ':shared:testClasses' as task 'testClasses' not found in project ':shared'.
  • Import/Sync:
  • Koala Canary 5 fails sync
  • Layout and Resource Editing:
  • Layout editor freezes for long time when autocomplete is done
  • Lint:
  • buildList - False Positive Lint warning
  • Profilers:
  • Studio continued profiling after rejected install, can't stop
  • Running Devices:
  • mouse wheel in mirroring blows up with compose

New in Android Studio 2024.1.1 Canary 5 (Apr 11, 2024)

  • Android Gradle Plugin:
  • JavaPreCompileTask includes KSP classpath dependencies when computing non-incremental annotation processors
  • Execution failed for task ':app:generateDebugLocaleConfig'.
  • Gradle:
  • Cannot locate tasks that match ':shared:testClasses' as task 'testClasses' not found in project ':shared'.
  • Layout and Resource Editing:
  • Left and Right Margins Constraint Widget Not Working in Android Studio Layout Design Library Module res/layout
  • Rendering:
  • Implement basic support for ApplicationInfo in PackageManager

New in Android Studio 2023.3.1 RC 2 (Apr 9, 2024)

  • Fixed issues:
  • AGP 8.3 breaks zipApksFor Task

New in Android Studio 2024.1.1 Canary 4 (Apr 8, 2024)

  • Fixed Issues:
  • C++ Build:
  • [Feature request] Better explanation or documentation of ndk-build options
  • Code Analysis:
  • The IntelliJ JavaApiInspection is running on Android code
  • Deployment:
  • Unable to install APK with spaces in name
  • Import/Sync:
  • Unable to make progress running work
  • StudioBot:
  • Expected '(', got ")" when typing in editor from completion metrics system

New in Android Studio 2024.1.1 Canary 3 (Apr 2, 2024)

  • Fixed Issues:
  • Android Gradle Plugin:
  • AAPT: error: attribute 'package' in <manifest> tag is not a valid Android package name: 'butterknife'.
  • AGP 8.3 breaks zipApksFor Task:
  • Privacy Sandbox Proguard rule generation fails on empty sdk provider classname
  • Compose preview unable to resolve classes from transitive dependency
  • C++ Editor:
  • Autocomplete JNI
  • Feedback:
  • File system corruption balloon has an unclickable link
  • Import/Sync:
  • AndroidGradleProjectStartupActivity - Requesting Gradle sync (IDE library table not found)
  • Lint Integration:
  • Lint unable to disambiguate a KMP dependency

New in Android Studio 2023.3.1.14 Beta 1 (Mar 21, 2024)

  • Introducing Studio Bot:
  • Studio Bot is your coding companion for Android development. It's an AI-powered conversational experience in Android Studio that helps you be more productive by answering Android development queries. To learn more, see Meet Studio Bot.
  • Access real devices with Device Streaming in Android Studio:
  • Device Streaming in Android Studio lets you securely connect to remote physical Android devices hosted in Google's secure data centers. Powered by Firebase, it's the fastest and easiest way to test your app against real devices, including the Google Pixel 8 Pro, Pixel Fold, select Samsung devices, and more.
  • After connecting to a device, you can deploy your app, view the display, interact with the device (including rotating or unfolding the device), and anything else you might do with a device over a direct ADB over SSL connection—all without leaving Android Studio. When you're done using the device, Google wipes all your data and factory resets the device before making it available to another developer.
  • During the current open alpha, you can use device streaming at no cost with Firebase projects on either a Spark or Blaze plan. To get started sign into your Developer account from Android Studio and select a Firebase project. If you don't already have a Firebase project, it's easy to create one. To learn more, go to Device Streaming in Android Studio.
  • New Sign-in flow:
  • When you sign into Android Studio with your Developer account, you benefit from Google developer services—such as viewing Firebase Crashlytics and Android Vitals reports in App Quality Insights, accessing real remote devices with Device Streaming in Android Studio, and writing higher-quality code with Studio Bot—directly from the IDE.
  • Android Studio Jellyfish makes it easier to add and manage accounts, and provide the IDE with only the permissions required for each feature. To get started do one of the following:
  • Navigate to one of the features mentioned previously and follow the prompts to sign in and provide necessary permissions
  • If you're already signed in, you can manage your accounts and permissions by navigating to Settings/Preferences > Tools > Google Accounts.
  • New colorblind checks in Compose UI Check:
  • Compose UI Check includes new colorblind simulations and checks, empowering you to craft visually accessible experiences for all users. Simply enter UI Check mode from Compose Preview to view your Compose UI in different types of color vision deficiencies to ensure your designs remain clear and usable.
  • Redirect audio using device mirroring:
  • Starting with Android Studio Jellyfish Canary 5, you can redirect audio from connected physical devices to your computer speakers or headphones. With audio redirection, keep your headphones connected to your computer and listen to both the computer and connected phone without having to manually reconnect to one device and then another. To enable audio redirection, go to Android Studio > Settings > Tools > Device Mirroring and select Redirect audio from local devices. Note that audio is always redirected, regardless of the settings, for Firebase Test Lab devices running Android 12 or higher.
  • Baseline Profile installation:
  • Android Studio Jellyfish automatically compiles Baseline Profiles after installation on device for projects that use AGP 8.4 or higher. This covers Baseline Profiles that have been generated through a Baseline Profile Generator module or from libraries like Compose. The automatic installation lets you experience the performance benefits of Baseline Profiles when installing your release app locally, and when using low overhead profiling.
  • Android Gradle Plugin behavior changes:
  • Starting with Android Gradle Plugin 8.4.0-alpha04, if an Android library project is minified, shrunk program classes will be published for inter-project publishing. This means that if an application depends on the shrunk version of the Android library subprojects, the APK will include shrunk Android library classes. You may need to adjust library keep rules in case there are missing classes in the APK.
  • In case you are building and publishing an AAR, local jars that your library depends on will be included unshrunk in the AAR, which means code shrinker won't run on them.
  • To revert to previous behavior, set android.disableMinifyLocalDependenciesForLibraries

New in Android Studio 2023.3.1 Canary 12 (Mar 1, 2024)

  • Fixed Issues:
  • Android Gradle Plugin:
  • MergeJavaResourcesTask incremental inputs handling issue
  • AGP 8.3.0-alpha02 depends on libraries with known security vunelaribilities
  • Selected activity template requires project with androidx.* dependencies
  • AGP Upgrade Assistent errouneously removes consumerProguardFiles from module
  • AGP Upgrade Assistant Loads Infinitely
  • Background Task Inspector:
  • App Inspection Work Manager Retries is inconsistent
  • Request: For "Background task inspector" tool , show all information that's possible to get about all alarms
  • C++ Build:
  • need a way to exclude native libraries from main APK but include in the test APK
  • Code Analysis:
  • Android Studio Iguana RC 1 is not finding new versions of libraries
  • Lint:
  • [BuildTool/Lint] ChecksSdkIntAtLeast constructor property
  • Project Structure:
  • Project structure dialog suggests updating a 3rd party dependency although it's older (but version number is higher)
  • Upgrade Assistant:
  • AGP Upgrade Assistant Infinite Loader

New in Android Studio 2023.3.1 Canary 11 (Feb 23, 2024)

  • Fixed Issues:
  • Background Task Inspector :
  • Bug: "Background task inspector" tool fail to detect an alarm being set
  • Request: For "Background task inspector" tool , show all information that's possible to get about all alarms
  • Alarm With immutable PendingIntent Doesn't Show as Fired
  • IntelliJ:
  • Android Studio Jellyfish does not respect "Accepted Certificates" configuration
  • Lint:
  • Lint K2 UAST: UCallableReferenceExpression reports wrong qualifierType
  • Lint false positive with useK2Uast=true with overloaded functions
  • StudioBot:
  • No scrolling in studio bot Android Studio Jellyfish | 2023.3.1 Canary 3

New in Android Studio 2023.3.1 Canary 10 (Feb 16, 2024)

  • Fixed Issues:
  • Android Gradle Plugin:
  • AIDL compile fails with IndexOutOfBoundsException: Index 0 out of bounds for length
  • API:
  • FR: viewBinding and dataBinding state (whether enabled) should be available as a Property<Boolean> for plugin authors

New in Android Studio 2023.2.1 RC 2 (Feb 14, 2024)

  • Fixed Issues:
  • Shrinker (R8):
  • Test SimpleKotlinEnumUnboxingTest fails on kotlin_dev bot

New in Android Studio 2023.2.1 RC 1 (Feb 6, 2024)

  • Fixed Issues:
  • 8.2.0 install task fails in project that uses dynamic features
  • Build Output:
  • AS Iguana Gradle Sync Errors Aren't Shown
  • Device Manager:
  • Definitions with identical names but different IDs crash the AVD Configuration dialog
  • Dexer (D8):
  • [desugared library] Desugared library version 2.1 is not compatible with previous versions of R8
  • Optimizations running even just with D8?
  • Import/Sync:
  • Performance regression - setting up dependencies in the IDE
  • Android Studio Hedgehog hangs on Computing project size
  • Shrinker (R8):
  • [R8 8.3.21] R8 8.3.21 is 1.57MB larger than R8 8.1.56
  • class.getInterfaces() return empty

New in Android Studio 2023.3.1 Canary 7 (Jan 26, 2024)

  • Fixed issues:
  • Add ability to change artifact name during transformation
  • Adding task output to as srcDir of sourceSets.androidMain.resources does not create a task dependencies
  • AndroidPluginVersion.toString() is missing leading 0s
  • Artifacts.add(FileSystemLocation) should be more restrictive.
  • Data bindings fail to resolve due to inconsistent cached data
  • Database Inspector: Support Sqldelight 2
  • Android Studio Hedgehog hangs on Computing project size
  • Lint testing framework's GradleModelMocker does not allow setting library version
  • Paired physical Wear OS device ignores left-handed screen inversion
  • GMD-FTL fails with HttpResponseException when no logcat available

New in Android Studio 2023.3.1 Canary 5 (Jan 22, 2024)

  • Fixed Issues:
  • Android Gradle Plugin :
  • Allow to configure sourceInformation from ComposeOptions
  • Cannot find field: sdk_runtime in message android.bundle.DeviceSpec
  • Support for compileOnlyApi
  • R8 fails on a library module when resource processing is disabled
  • Code Analysis:
  • Request: offer alternative to DeprecatedSinceApi , as it's triggered even if minSdk is lower
  • Import/Sync:
  • Resolution of symbols from KAPT produces .classes seems to be broken
  • Running Devices:
  • For the Android Studio mirroring feature, also mirror sound

New in Android Studio 2023.3.1 Canary 4 (Jan 12, 2024)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Minified library classes are not published correctly for inter-project consumption
  • Provide Variant#sources API that excludes generated files
  • AGP models do not contain java-platform project dependencies
  • ExtractAarTransform creates non-reproducible classes.jar for aars that have no classes.jar
  • Baseline Profiles & ProfileInstaller:
  • compileReleaseArtProfile fails with java.lang.ArrayIndexOutOfBoundsException
  • Core IDE:
  • Welcome page windows size too big
  • Device File Explorer:
  • The "Device does not seem to support the "su 0" command" message should not include stack trace
  • Layout Editor:
  • Feature request: Consider publishing LayoutLib as a separate artifact on maven.google.com
  • Network Inspector :
  • Downloading large file fails when Network Inspector is open
  • New Code/Templates:
  • Consistently use lowercase letters in suggested plugin names
  • Resources:
  • Hovering over "Show All Regions" in the Locale selector resets region selection

New in Android Studio 2023.1.1.26 (Dec 15, 2023)

  • IntelliJ IDEA 2023.1 platform update:
  • Android Studio Hedgehog includes the IntelliJ IDEA 2023.1 updates, which improve the Studio IDE experience. For details on the changes, see the IntelliJ IDEA 2023.1 release notes.
  • Analyze Android vitals in App Quality Insights:
  • App Quality Insights now includes Android vitals data, so you can more easily access core metrics collected by Google Play and improve your user experience. Use Android vitals to address issues related to app stability to help improve the quality of your app on Google Play.
  • You can view Android vitals issues, filter them, and jump from stack trace to code all from the App Quality Insights tool window. To get started, follow these steps:
  • Sign in to your developer account in Android Studio using the profile icon at the end of the toolbar.
  • Open App Quality Insights by clicking the tool window in Android Studio or clicking View > Tool Windows > App Quality Insights.
  • Click the Android vitals tab within App Quality Insights.
  • Different numbers between Android vitals and Crashlytics:
  • Note that Android vitals and Crashlytics might report different values for the numbers of users and events associated with the same crash. These discrepancies happen because Play and Crashlytics can catch crashes at different times and for different users. Here are a couple reasons for why the Play and Crashlytics counts might differ:
  • Play catches crashes starting at boot time, whereas Crashlytics catches crashes that happen after the Crashlytics SDK initializes.
  • If a user opts out of crash reporting when they get a new phone, those crashes aren't reported to Play; however, Crashlytics catches crashes based on an app's own privacy policy.
  • New Power Profiler:
  • Starting in Android Studio Hedgehog, the Power Profiler shows power consumption on devices. You can view this new data in the On Device Power Rails Monitor (ODPM). The ODPM segments the data by subsystems called Power Rails. See Profileable power rails for a list of supported subsystems.
  • The System Trace records and displays power consumption data. It is part of the CPU profiler. This data helps you to visually correlate power consumption of the device with the actions occurring in your app. The Power Profiler enables visualizing this data.
  • To view the data from the new Power Profiler, take a system trace on a Pixel 6+ device:
  • Select View > Tool Windows > Profiler.
  • Click anywhere in the CPU timeline to open the CPU Profiler and start a system trace.
  • New App Links Assistant:
  • The new App Links Assistant provides a comprehensive overview of the deep links set up in your app. The Assistant displays all existing deep links in the app's AndroidManifest.xml file, validates whether the configuration for those deep links is correct, and provides a quick way to automatically fix the misconfigurations.
  • To open the App Links Assistant navigate to Tools > App Links Assistant in Android Studio. For more information about app links, see Add Android App Links.
  • Live Edit updated manual mode shortcut:
  • Live Edit in Android Studio Hedgehog includes a new shortcut for manual mode (Push Manually): Control+ (Command+ for macOS). Manual mode is helpful in situations where you want to have precise control over when updates are deployed to the running application. For example, if you're making a large scale change in a file and don't want any intermediate state to be reflected on the device. You can choose between Push Manually and Push Manually on Save in the Live Edit settings or using the Live Edit UI indicator. For more information, see the video clip in Live Edit for Jetpack Compose.
  • Compose Multipreview templates:
  • androidx.compose.ui:ui-tooling-preview 1.6.0-alpha01+ introduces new Multipreview API templates: @PreviewScreenSizes, @PreviewFontScales, @PreviewLightDark, and @PreviewDynamicColors, so that with one single annotation, you can preview your Compose UI in common scenarios.
  • Compose Preview Gallery Mode:
  • In Android Studio Hedgehog, a new Gallery mode has been introduced in Compose Preview, which lets you focus on one preview at a time and save resources on rendering. We recommend using Gallery Mode when you need to iterate on your app's UI and switching to other modes, for example Grid or List, when you need to see UI variants.
  • Compose state information in debugger:
  • When parts of your Compose UI recompose unexpectedly, it's sometimes difficult to understand why. Now, when setting a breakpoint on a composable function, the debugger lists the parameters of the composable and their state, so you can more easily identify what changes might have caused the recomposition. For example, when you pause on a composable, the debugger can tell you exactly which parameters have "Changed" or have remained "Unchanged", so you can more efficiently investigate the cause of the recomposition.
  • Device mirroring:
  • You can now mirror your physical device in the Running Devices window in Android Studio. By streaming your device's display directly to Android Studio, you can execute common actions such as starting apps and interacting with them, rotating the screen, folding and unfolding the phone, changing the volume, and more right from the Studio IDE itself.
  • Device mirroring is always available when there are devices connected to the computer that have USB or wireless debugging enabled. You can start and stop mirroring using the Running Devices window or the Device Manager (View > Tool Windows > Device Manager). You can also customize when device mirroring is activated in its settings (Settings > Tools > Device Mirroring).

New in Android Studio 2023.2.1 Canary 17 (Dec 8, 2023)

  • General fixes and features:
  • Fixed Issues:
  • Android Gradle Plugin:
  • Please provide options to include generated sources on Javadoc and SourceJar
  • Need quick fix for discrepancy between compileSdk and dependency with minCompileSdkVersion
  • [Gradle] tools:overrideLibrary should support asterisk (*)
  • UI Freeze when editing manifest
  • App Quality Insights:
  • The sorting function of the Issues column isn't sorting intuitively
  • C++ Debugger:
  • LLDB Debugger not check apk for required architectures before launching
  • Code Analysis:
  • Lint library version checks don't work with BoM (Bill of Materials)
  • Code Editor:
  • Quick documentation action on a function shows "COMPILED_CODE" for default parameters in Iguana Canary 5
  • Device Manager:
  • Device skins copied to SDK directory
  • Gradle:
  • 'InlineApi' instead of 'InlinedApi'
  • Import/Sync:
  • Allow tests for syncing with old versions of AGP to handle new namespace DSL
  • Firebase BOM not updated
  • Lint:
  • Android Studio / Lint doesn't tell you when "platform" dependencies are out of date
  • Bug: no suggestion to update Firebase-bom dependency
  • Project Structure (and Gradle (?)) does not discover Firebase BOM dependencies to be upgraded to a newer version.

New in Android Studio 2023.2.1 Canary 16 (Nov 30, 2023)

  • Fixed:
  • The link for "decoupled Projects" in studio settings goes to the wrong place.
  • Record Your Test window not displayed in Android Studio for "Expresso Test Recorder"
  • Unclear error/warning after project sync
  • gRPC support for network inspector
  • gRPC inspector cannot capture from AndroidChannelBuilder
  • isShrinkResources overoptimizes in 8.3.0-alpha11 to alpha14

New in Android Studio 2023.2.1 Canary 15 (Nov 28, 2023)

  • DexArchiveBuilderTaskDelegate was failed with resource only library module
  • AGP7.4 custom plugin variant toTransform for all throw duplicate entry: META-INF/MANIFEST.MF exception
  • Support new Manifest tags,
  • Record Your Test window not displayed in Android Studio for "Expresso Test Recorder"
  • UI for "Gradle JDK" does not suggest "Gradle Sync"
  • Iguana Canary 13: Layout inspector is spamming logcat with "No package ID ff found for resource ID 0xffffffff."
  • gRPC support for network inspector
  • Resource resolution breaks when resource files are moved
  • When extracting string it become error
  • Unable to connect to physical device for development

New in Android Studio 2022.3.1.22 (Nov 16, 2023)

  • Fixed:
  • Do not run dexing task on subprojects' classes when they are already dex'd through artifact transforms

New in Android Studio 2023.1.1.24 RC 3 (Nov 9, 2023)

  • HEDGEHOG REGRESSION: Run button is delayed by a few seconds (Creating spec)
  • Logo on the About screen is distorted starting with Iguana Canary 6

New in Android Studio 2022.3.1.21 (Nov 8, 2023)

  • Bugs fixed:
  • ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
  • Build failure after updating to AGP 8.1

New in Android Studio 2023.2.1 Canary 11 (Oct 26, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Migrate to new Gradle configuration alignment API
  • Resource compilation fails when Kotlin compiler tries to update to IDEA 21.3
  • Reactive get() with artifacts API
  • Graduate "android.lint.printStackTrace" AGP property to stable
  • API:
  • com.android.build.api.dsl.Packaging has no useful javadoc.
  • New Varian API DSL feature request: Equivalent for old API BaseVariant.preBuildProvider
  • Import/Sync:
  • GradleProjectInfo.setSkipStartupActivity is still being used
  • Refresh VFS after project builds
  • Offer quickfix for "Could not install Gradle distribution"
  • Layout Inspector:
  • Iguana Canary 2: Embedded Layout inspector spams logcat with `Invalid resource ID` errors
  • Lint:
  • Invalid highlight of an warning which is false positive
  • Lint visitAnnotationUsage not called for usages of annotated classes in variable declarations
  • Network Inspector:
  • Make Network Inspector Static
  • Running Devices:
  • Pixel fold device streaming broken for API level 34

New in Android Studio 2023.2.1 Canary 9 (Oct 20, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Transforming the ASSETS artifact give broken input/output locations
  • Promote android.experimental.r8.dex-startup-optimization=true to be default
  • Editing:
  • shrinkunusedprotofields is marked as invalid flag in proguard-rules.pro
  • IntelliJ:
  • Iguana: Process 471 is still running
  • Lint:
  • Issue #300392968
  • Quickfix Lint doesn't work and results in an IDE error
  • Inconsistent test failure due to partial analysis
  • Logcat:
  • Add a Process Name Column in Logcat

New in Android Studio 2023.2.1 Canary 8 (Oct 19, 2023)

  • Fixed Issues
  • Android Gradle Plugin
  • Issue #303641463
  • Tranforming an APK leads to a error with ListingFileRedirectTask
  • Baseline Profiles & ProfileInstaller
  • Issue #283947063
  • Desugared classes are missing from the compiled profile
  • Code Editor
  • Issue #303127400
  • Android Studio deadlock (AttachAndroidSdkSourcesNotificationProvider)
  • Compose Editing
  • Issue #302614310
  • Don't implement optional trailing lambdas by default
  • Compose Preview
  • Issue #302275561
  • Change request: prev Live Template should generate a private function
  • Debugger
  • Issue #303971655
  • App Inspection Instructions are Misleading
  • Import/Sync
  • Issue #298395223
  • AndroidGradleProjectResolver.isAndroidGradleProject takes significant time
  • Live Edit
  • Issue #296250263
  • 10-30 second freezes caused by Live Edit
  • Profilers
  • Issue #283462661
  • Profiler becomes unusably slow after just 3-4 runs, have to restart IDE
  • Resource Manager
  • Issue #286928893
  • Bug: importing SVG file puts it in wrong folder, of "drawable-svg" instead of "drawable", causing "Android resource linking failed" error
  • Testing
  • Issue #255784701
  • Macrobenchmark test results show same timing info for all tests using Run -> Import Tests From File

New in Android Studio 2023.1.1 RC 1 (Oct 18, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Android Studio Giraffe does not respect versionCodeOverride with AGP 8.1
  • AGP 8.1.0 uninstalls app after running instrumented tests - 7.4.2 does not
  • Tranforming an APK leads to a error with ListingFileRedirectTask
  • C++ Build:
  • [Hedgehog | 2023.1.1 Beta 4] android.injected.build.abi' gradle flag contained 'armeabi' which is invalid.
  • Running Devices:
  • Device mirroring causing extremely high CPU usage on phone
  • Third Party Plugins :
  • Lombok plugin support

New in Android Studio 2023.2.1 Canary 7 (Oct 6, 2023)

  • Fixed Issues:
  • Android Gradle Plugin :
  • AGP 810 uninstalls app after running instrumented tests - 742 does not
  • Layout Editor:
  • androidxcore:core-ktx:1120 causes Render Problem in Android Studio
  • Navigation Editor:
  • Problem to Define Args in Navigation
  • Profilers:
  • Save (or copy) traces recorded by Macrobenchmark library
  • Rendering:
  • Android Studio Hedgehog 202311 Canary 15 hangs when typing drawable resource name
  • Resources:
  • String Extract generates getString() instead of stringResource() in Electric Eel
  • Run:
  • Minimum port 5038 for 'user managed adb' prevents use of the default port 5037 which may be desired
  • Tip of the Day:
  • Suppress tip-of-the-day in Android Studio

New in Android Studio 2023.2.1 Canary 6 (Sep 29, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Enforce `android.enableDexingArtifactTransform=true`
  • [Gradle 8.4][upgrade] Integration test failure after upgrade due to file handling in configuration phase
  • AGP 8.3.0-alpha-02 - `Error: Failed to deserialize cached resource repository.`
  • [Gradle 8.4][upgrade] Integration test failure after upgrade due file handling in configuration phase of TestLabBuildService
  • Code Editor:
  • Editor for ProGuard rules warns about missing class for -dontwarn
  • Compose Editing:
  • Don't put `@Composable` on extract constants
  • Emulator:
  • Bluetooth Exceptions when using Android Emulator 33.1.13
  • Import/Sync:
  • Sources for AndroidX KMP libraries are not downloaded in Studio I Canary 5
  • Lint:
  • lint:TypographyQuotes false negatives: more than one escaped apostrophe are ignored
  • AGP 8.0.2 lint InvalidId detector false positive
  • LintError issues added to lint baselines
  • Resources:
  • Remove unused STRING resources

New in Android Studio 2022.3.1.20 (Sep 28, 2023)

  • androidResources is not available in the android library module
  • [AGP 8.1.0] ./gradlew test fails with "Unable to find manifest output" if both splits.abi.isEnable and testOptions.unitTests.isIncludeAndroidResources are true
  • Android Studio 2022.3.1 Giraffe is missing database inspector
  • Kotlin 1.9 causes Kotlin lambdas to be destroyed by R8 if nullchecks are stripped
  • R8 fails with "Undefined value encountered during compilation" for play-services-measurement-21.3.0-runtime.jar

New in Android Studio 2023.1.1 Beta 5 (Sep 28, 2023)

  • Fixed Issues:
  • Enable native record and sealed classes when dexing for min-api 34 and above

New in Android Studio 2022.3.1.21 (Sep 21, 2023)

  • Use Live Edit to update composables in real time
  • New UI theme
  • Support for Grammatical Inflection API
  • Automatic per-app language suppor
  • New API support for Compose Animation Preview
  • View and manage processes in the Device Explorer
  • Kotlin DSL is the default for build configuration
  • New Android SDK Upgrade Assistant
  • Support for Gradle Version Catalogs
  • Enhanced diagnostic tools and bug reporting
  • Make Selected Modules toolbar button
  • Download info during sync
  • Android Lint contains bytecode targeting JVM 17
  • Native library compression setting moved to DSL
  • Disable build optimization for target API level only

New in Android Studio 2023.1.1 Beta 4 (Sep 14, 2023)

  • Android Gradle Plugin:
  • Execution failed for task ':app:mergeReleaseClasses' after Updating AGP from 8.0.2 to 8.1.0
  • Gradle 8.4][upgrade] Integration test failure after upgrade due to use of deprecated feature in kotlin gradle plugin
  • App Quality Insights:
  • AQI tool window shows always users count from event count
  • App Quality Insight shows invalid OS version
  • Baseline Profiles & ProfileInstaller:
  • Gradle plugin isn't compatible with 8.3 alphas
  • Code Editor:
  • "Incorrect formatting" firing on layout XML files based on incorrect setting value
  • Gradle Files Editor:
  • Version catalog shows unused symbols in Groovy when names are nested
  • Resources:
  • Android Studio hangs with indirect resource reference to duplicate name

New in Android Studio 2023.1.1 Beta 2 (Sep 6, 2023)

  • Fixed Issues:
  • Device Manager:
  • [AS + Wear emulators] Device Manager doesn't remember pairing until devices started
  • Layout Editor:
  • layout xml: design-left-component tree ,select a component and can't use ctrl+B hotkey to code
  • Lint Integration:
  • DuplicatePlatformClasses lint error from testImplementation dependency

New in Android Studio 2023.1.1 Beta 1 (Aug 26, 2023)

  • Fixed Issues:
  • Android SDK Upgrade Assistant:
  • Target SDK Upgrade Assistant never loads
  • Import/Sync:
  • UI for "Gradle JDK" does not synchronize field content
  • Unable to make progress running work.
  • Layout Inspector:
  • Debug app crashes sometimes when Layout Inspector is active
  • Lint:
  • Unexpected issues from another project flagged by Android Lint
  • Android Lint fails on a KMP library with `property 'variantInputs.name' doesn't have a configured value.`
  • Run:
  • Cannot save Dynamic features settings on run/debug configurations
  • Shrinker (R8):
  • java.lang.VerifyError: Verifier rejected class
  • Build gets stuck on :minifyReleaseWithR8 when using Apache POI library

New in Android Studio 2022.3.1.18 (Jul 25, 2023)

  • Use Live Edit to update composables in real time
  • New UI theme
  • Support for Grammatical Inflection API
  • Automatic per-app language support
  • New API support for Compose Animation Preview
  • View and manage processes in the Device Explorer
  • New Android SDK Upgrade Assistant
  • Support for Gradle Version Catalogs
  • Enhanced diagnostic tools and bug reporting
  • Make Selected Modules toolbar button
  • Download info during sync
  • Android Lint contains bytecode targeting JVM 17
  • Native library compression setting moved to DSL

New in Android Studio 2023.1.1 Canary 13 (Jul 19, 2023)

  • General fixes and features

New in Android Studio 2023.1.1 Canary 11 (Jul 11, 2023)

  • Android Gradle Plugin:
  • Advertise R8 / D8 version requirements in AAR metadata (e.g. for coreLibraryDesugaring and new API out-of-lining)
  • Sync warning: "GradleBuildProject.Builder should not be accessed through AnalyticsConfiguratorService after AnalyticsService is created"
  • Android Studio:
  • File extension missing on video recordings default filename
  • Code Editor:
  • large webp images takes up half of coding area
  • Design Tools:
  • Failed to start Git Process: Exec access not allowed during rendering
  • Gradle Files Editor:
  • Version catalogs show a warning when there is a newer SNAPSHOT artifact available
  • Import/Sync:
  • com.intellij.jarRepository.ExternalAnnotationsRepositoryResolver
  • Layout Editor:
  • resource manager drag and drop replaces data binding brackets
  • Preferences Component Tree: title is inconsistent
  • Constraint Layout: Layout Editor doesn't show details defined in a style
  • Make shortcut for building (in editor) rebuilds all modules instead of current module
  • "Undo Undefined" after an automatic layout conversion to ConstraintLayout
  • Order of includes affects tools:text working
  • New TextInputlayout persistently goes out of screen when connected to existing object
  • tag inside layout XML triggers lint error: "Unresolvable tag"
  • Layout editor : latest display settings aren't saved
  • Lint:
  • Bumblebee 2021.1.1 Patch 1 is saying an old version (20030203.000550) of commons-io is newer than 2.11.0.
  • Android Studio improperly marks specified version as out-of-date.
  • Motion Editor:
  • IDE freezes on autocomplete in the XML layout

New in Android Studio 2023.1.1 Canary 10 (Jul 7, 2023)

  • General fixes and features:
  • Fixed Issues:
  • Android Gradle Plugin:
  • `android.injected.studio.version` was removed in Android Studio Giraffe
  • Add ability to disable AndroidXDependencyCheck
  • generateLocaleConfig in agp 8.1.0 uses non-deterministic ordering, breaking reproducible builds
  • Espresso Recorder:
  • Add dependency to catalog if project is version catalog aware at Test recorder (RecordingDialog)
  • Import/Sync:
  • Studio Hedgehog Canary 6 hangs on gradle sync with gradle 8.1.1 and AGP 8.0.2
  • Project Structure:
  • Cannot update custom JDK location w/o opening a project first

New in Android Studio 2022.3.1 RC 1 (Jun 22, 2023)

  • Fixed Issues:
  • Shrinker (R8):
  • dex-startup-optimization results in java.lang.VerifyError: Rejecting class

New in Android Studio 2023.1.1 Canary 9 (Jun 21, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Fix LintErrors when running lint with K2 UAST via Gradle on a KMP project
  • Support for Variant level missingDimensionStrategy, and possibly build type/flavor matchingFallback
  • Lint:
  • Lint 8.2.0 alphas still do not support top-level function imports in kotlin
  • Resources:
  • Help button for New Resource Directory dialog

New in Android Studio 2022.3.1 Beta 5 (Jun 9, 2023)

  • Fixed Issues:
  • Upgrade assistant incorrectly suggests updating to targetSdk 33
  • A corner case in VirtualDispatchMethodArgumentPropagator.shouldActivateMethodStateGuardedByBounds() method

New in Android Studio 2022.3.1 Beta 4 (May 31, 2023)

  • General fixes and features:
  • Android Gradle Plugin:
  • Bug: "Enable KSP and use the KSP processor for this dependency instead" just goes to a website
  • Gradle 8.1 breaks configuration caching due to .gradle/.android/analytics.settings
  • Compose Preview:
  • UI completely frozen
  • Dexer (D8):
  • agp 8.1.0 regression with API 21 - F/dex2oat ( 4176): art/compiler/driver/compiler_driver.cc:1181] Check failed: !method->IsAbstract()
  • Shrinker (R8):
  • R8 on AGP 8 breaks Google Fit service
  • Including source file information with residual names that overlap input names is not correctly represented
  • R8 fails during Compose build with ArrayIndexOutOfBoundsException
  • Simple StringBuilder related code misses tail call to append in release or debuggable=false mode

New in Android Studio 2022.3.1 Beta 3 (May 17, 2023)

  • Released together with:
  • Android Gradle Plugin 8.1.0-beta03
  • Fixed Issues:
  • Compose:
  • Issue #279162835
  • Wear Compose tooling multi previews not working
  • Editing:
  • Issue #275239567
  • Essential highlighting accumulates gutter icons
  • JDK:
  • Issue #278423874
  • IDE keeps flashing very fast after being moved from one display to another

New in Android Studio 2023.1.1 Canary 4 (May 16, 2023)

  • Android Gradle Plugin:
  • Remove VariantManager.getModifiedName
  • AndroidTest.packaging.jniLibs.keepDebugSymbols doesn't affect androidTest packaging
  • Compose Preview:
  • UI completely frozen
  • Slow Compose Preview
  • Empty PreviewParameterProvider doesn't show any warning
  • Gradle:
  • Sync fails if managedDevices is present in build script on M1 with x86 JDK
  • Layout Inspector:
  • Request - when double clicking a View on the visual part of layout-inspector, go to the layout file that has it

New in Android Studio 2022.3.1 Beta 2 (May 9, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Issue #274016286
  • Request: let the IDE offer a fix for "PermittedSubclasses requires ASM9"
  • Debugger:
  • Issue #268213434
  • Error when trying to debug android test of library from AS
  • Deployment:
  • Issue #278722268
  • Android Studio install and launch app twice on debug
  • Import/Sync:
  • Issue #278521775
  • Just updated to Flamingo and I cant sync my project. Getting unsupported java
  • Shrinker (R8):
  • Issue #278573402
  • VerifyError: Verifier rejected class when using R8 with Kotlin 1.8.20

New in Android Studio 2022.3.1 Beta 1 (Apr 21, 2023)

  • Use Live Edit to update composables in real time:
  • Live Edit lets you update composables in emulators and physical devices in real time. Edit composables and see the UI changes on the running device without re-deploying your app. This functionality minimizes context switches between writing and building your app, letting you focus on writing code longer without interruption. To try Live Edit, use AGP 8.1 or higher and Compose 1.3.0 or higher.
  • New UI preview:
  • Android Studio Giraffe Canary 2 introduces support for the new UI theme from IntelliJ. To opt in to this option, go to Android Studio > Settings > Appearance & Behavior.
  • The redesigned theme aims to reduce visual complexity, provide easier access to essential features, and disclose complex functionality as needed—resulting in a modern, cleaner look and feel. The key changes are:
  • Simplified main toolbar with new VCS, Project, and Run widgets
  • Tool windows have a new layout
  • New Light and Dark color themes with improved contrast and consistent color palettes
  • New icon set for improved legibility
  • For a full list of changes, see the IntelliJ new UI documentation.
  • The following are some known issues in Android Studio that will be addressed in upcoming releases.
  • Window header toolbar is missing device picker and Android actions, for example Build, Apply Changes, and Sync Project.
  • Android tool windows are not shown by default on the sidebars.
  • The style of Android icons and illustrations needs to be updated.
  • Duplicate controls for switching among the Code, Split, and Design modes.
  • Support for Grammatical Inflection API:
  • Android Studio Giraffe Canary 7 introduces support for the Grammatical Inflection API (available as of Android 14 Developer Preview 1).
  • This new feature lets you personalize the UI for your users by adding translations inflected based on your user's grammatical gender when required. You can add grammatically masculine, feminine, or neutral translations. When no grammatically inflected translation is provided for a string, Android displays the default translation for the language.
  • Automatic per-app language support:
  • Note: This feature won't make changes to your project in the same way as the manual setup process. All changes from the automatic process are done in generated files. For example, you won't see an android:localeConfig entry in your app's manifest or a file at res/xml/locales_config.xml. That is expected since all of the changes are generated automatically when the app is built.
  • Starting with Android Studio Giraffe Canary 7 and AGP 8.1.0-alpha07, you can configure your app to support per-app language preferences automatically. Based on your project resources, the Android Gradle plugin generates the LocaleConfig file and adds a reference to it in the final manifest file, so you no longer have to do it manually. AGP uses the resources in the res folders of your app modules and any library module dependencies to determine the locales to include in the LocaleConfig file.
  • Note that the automatic per-app language feature supports apps that run Android 13 (API level 33) or higher. To use the feature, you must set compileSdkVersion to 33 or higher. To configure per-app language preferences for prior versions of Android, you still need to use the APIs and in-app language pickers.
  • New API support for Compose Animation Preview:
  • Compose Animation Preview now also supports animate*AsState, CrossFade, rememberInfiniteTransition, and AnimatedContent (in addition to updateTransition and AnimatedVisibility). To use these additional APIs with Compose Animation Preview, upgrade to Android Studio Giraffe Canary 3 and Compose 1.4.0-alpha04 or higher.
  • Compose Animation Preview also has new pickers that let you set non-enum or boolean states to debug your Compose animation using precise inputs. For all supported Compose Animation APIs, you can play, pause, scrub, control speed, and coordinate.
  • Device mirroring:
  • Minimize the number of interruptions when developing by streaming your device display directly to Android Studio. Device mirroring gives you the ability to interact with a physical device using the Running Devices window in Studio. To enable this feature, go to File > Settings > Tools > Device Mirroring and check the box next to Enable mirroring of physical Android devices. Once enabled, connect your device and either deploy your app or open the Running Devices window to begin streaming the device's display and interacting with it from the IDE.
  • To learn more, see the Android Studio Electric Eel release note.
  • View and manage processes in the Device Explorer
  • Android Studio Giraffe includes an updated Device Explorer, known as the Device File Explorer in previous versions of Android Studio. In the Device Explorer, files and related actions are located in the Files tab. In the new Processes tab, view a list of debuggable processes for the connected device. From there you can also select a process and perform a kill , force-stop , or attach the debugger to a given process .
  • Use Firebase Test Lab devices with Gradle Managed Devices:
  • You can now run your automated instrumented tests at scale on Firebase Test Lab devices when using Gradle Managed Devices. Test Lab lets you run your tests simultaneously on a wide range of Android devices, both physical and virtual. These tests run in remote Google data centers. With support from Gradle Managed Devices, the build system can now fully manage running tests against these Test Lab devices based on the configurations in your project's Gradle files.
  • Create and run tests on a Gradle managed Firebase Test Lab device:
  • You can specify a Firebase Test Lab device for Gradle to use for testing your app in the module-level build.gradle file. The following code sample creates a Pixel 2 running API level 30 as a Gradle managed Test Lab device called device1.
  • To run your tests using the Gradle managed Test Lab devices you configured, use the following command. device-name is the name of the device you configured in your Gradle build script, such as device1, and BuildVariant is the build variant of your app you want to test. Note that Gradle doesn't run tests in parallel or support other Google Cloud CLI configurations for Test Lab devices.
  • The test output includes a path to an HTML file that has the test report. You can also import test results into Android Studio for further analysis by clicking Run > Test History in the IDE.
  • New Android SDK Upgrade Assistant:
  • Android Studio Giraffe introduces the Android SDK Upgrade Assistant, a new tool that helps you upgrade the targetSdkVersion, or the API level that your app targets. The Android SDK Upgrade Assistant guides you through upgrading targetSdkVersion level by level. For each migration step, it highlights the major breaking changes and how to address them.
  • To open the Android SDK Upgrade Assistant, go to Tools > Android SDK Upgrade Assistant. In the Assistant panel, select the API level that you want to upgrade to for guidance. For the best experience, you should upgrade targetSdkVersion values one level at a time.
  • The Android SDK Upgrade Assistant includes only the major changes you need to be aware of in each API level. For more comprehensive lists of changes, see the Android release summaries.
  • This feature is under active development. If you have any feedback, please file a bug.
  • Support for Gradle Version Catalogs:
  • Android Studio Giraffe introduces support for TOML-based Gradle Version Catalogs, a feature that lets you manage dependencies in one central location and share dependencies across modules or projects. Android Studio now makes it easier to configure version catalogs through editor suggestions and integration with the Project Structure dialog. To learn how to update to Gradle Version Catalogs, see Migrate your build to version catalogs.
  • Code completion and navigation:
  • Android Studio offers code completion when you're editing a version catalog in the TOML file format or adding a dependency from a version catalog to a build file. To use code completion, press Ctrl+Space (Command+Space on macOS). In addition, quickly navigate from a dependency reference in your app's build.gradle file to where it's declared in the version catalog by pressing Ctrl+b (Command+b on macOS).
  • Integration with the Project Structure dialog:
  • If your project uses a version catalog defined in the TOML file format, you can edit variables you've defined there through the Project Structure dialog Variables view (File > Project Structure > Variables) in Android Studio. For each version catalog, there is a drop-down that lists the variables from that catalog. To edit a variable, click on its value and overwrite it. When you save these changes, the TOML file is updated accordingly.
  • You can also update dependencies in the Project Structure dialog Dependencies view (File > Project Structure > Dependencies). To update versions using the Project Structure dialog, navigate to the module and dependency you want to edit, and then update the Requested Version field. When you save these changes, the TOML file is updated accordingly. Note that if the dependency version was defined using a variable, updating the version directly this way replaces the variable with a hardcoded value. Also be aware that removing a dependency from a build file, whether you use the Project Structure dialog or not, doesn't remove the dependency from the version catalog.
  • Error highlighting plugin alias declarations in Kotlin script files:
  • When you add a plugin declaration of the form alias(libs.plugins.example), the editor adds a red underline under the libs part. This is a known issue in Gradle versions 8.0 and lower and will be resolved in a future release of Gradle.
  • Android Studio support only for version catalogs in TOML format
  • Currently the Android Studio code completion, navigation, and Project Structure dialog support is only available for version catalogs defined in the TOML file format. However, you can still add a version catalog directly in the settings.gradle file and use its dependencies in your project.
  • Navigation for KTS build files not supported:
  • Navigating to a dependency definition in a version catalog by using Control+click (Command+click on macOS) isn't yet supported for build files written using Kotlin script.
  • "Find usages" functionality not supported:
  • Finding usages of a version catalog variable in other build files isn't yet supported, whether the build file is in KTS or Groovy. That is, using Control+click (Command+click on macOS) on a variable definition in a version catalog doesn't lead to the build files where the variable is used.
  • Project Structure dialog doesn't show catalogs from composite builds
  • The Project Structure dialog in Android Studio shows multiple catalog files if they're in the root gradle folder, but doesn't show catalogs for a composite build. For example if you have two catalog files, one for your app and one for a composite build, the Project Structure dialog only shows the app catalog file. You can use a composite build, but you have to edit its TOML file directly.
  • Enhanced diagnostic tools and bug reporting:
  • Android Studio Giraffe Canary 8 introduces new diagnostic tools that make it easier to report bugs with relevant log files attached. To use the new diagnostic report generator, follow these steps:
  • To launch the tool, click Help > Collect Logs and Diagnostic Data. A dialog appears that lets you choose which files to include.
  • Check or un-check specific files to include in your diagnostic report. Click on a specific file in the menu to see a preview of it.
  • When you're ready to export the diagnostic report, agree to the terms and click Create.
  • Select the location where you want to save the diagnostic report zip file and click Save.
  • As part of this enhancement, the bug reporting template (Help > Submit feedback) has also been updated to emphasize the importance of attaching log files. If you file a bug, be sure to attach logs because they help us isolate the issue and are an essential first step to our debugging process.
  • Whichever option you selected last (Make Selected Modules or Make Project) stays on the button until it's changed using the arrow. The Make Selected Modules option does the same thing as the action available under Build > Make Selected Modules.
  • Download info during sync:
  • The Sync tool window now includes a summary of time spent downloading dependencies and a detailed view of downloads per repository. This view updates live as sync takes place. You can use this information to determine whether unexpected dependency downloads are negatively impacting your sync performance. Since Gradle resolves dependencies by searching through each repository in the declared order, it's important to list the repository that hosts most dependencies at the top of the repository configuration list. Additionally, if you see a high number of failed requests for a specific repository, it could indicate that the repository should be removed or moved lower in your repository configuration.
  • Make selected modules toolbar button:
  • Starting with Android Studio Giraffe Canary 10, build only the current module you're working on by selecting the Make Selected Modules build option in the toolbar. This new option lets you check that the code you just wrote compiles without building more than needed. Alternatively, build your entire project by clicking the arrow next to the build button and selecting Make Project.
  • Android Lint contains bytecode targeting JVM 17:
  • Starting with AGP 8.1.0-alpha04, Android Lint contains bytecode targeting JVM 17. If you write custom lint checks, you need to compile with JDK 17 or higher and specify jvmTarget = '17' in your Kotlin compiler options.
  • To learn more about the lint tool, see Improve your code with lint checks.
  • Disable build optimization for target API level only:
  • Starting with Android Studio Giraffe Canary 6, you can disable IDE optimization for the target device API level. By default, Android Studio reduces overall build time by tailoring the dexing process for the API level of the target device you're deploying to. To turn this feature off, go to File > Settings > Experimental (Android Studio > Settings > Experimental on macOS) and uncheck Optimize build for target device API level only. Note that turning off this build optimization might increase build time.
  • Native library compression setting moved to DSL:
  • Starting with AGP 8.1.0-alpha10, you'll get a warning if you don't configure native library compression using the DSL instead of the manifest. The following guidance explains how to update your configuration to use the DSL. To get help making these updates, use the AGP Upgrade Assistant (Tools > AGP Upgrade Assistant).

New in Android Studio 2022.3.1 Canary 11 (Mar 30, 2023)

  • Fixed Issues:
  • Dexer (D8):
  • Issue #266687543
  • Core library desugaring crashing app after recent updates.
  • Gradle:
  • Issue #205992138
  • Ignore sync changes is missing keymap option
  • Import/Sync:
  • Issue #272065005
  • [Giraffe | 2022.3.1 Canary 8] Red underlines in build.gradle.kts file for new project
  • Logcat:
  • Issue #257008139
  • Logcat V2 - Unable to use regex filter with spaces or parentheses
  • Issue #273600331
  • Android Studio Giraffe | 2022.3.1 Canary 9 logcat doesnt work with package:mine filter
  • Release Bundle/APKs:
  • Issue #272310205
  • Generate signed bundle error (Deleting all alias in keystore when creating a new one)

New in Android Studio 2022.2.1 RC 1 (Mar 28, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Issue #271424910
  • android.injected.testOnly=false does not work
  • Dexer (D8):
  • Issue #271408544
  • Workaround for JDK-8272564 seems to be required on API level 28-30
  • Release Bundle/APKs:
  • Issue #272310205
  • Generate signed bundle error (Deleting all alias in keystore when creating a new one)

New in Android Studio 2022.3.1 Canary 10 (Mar 21, 2023)

  • Android Gradle Plugin:
  • Issue #269758603
  • Can we remove AnalyticsRecordingTask?
  • Issue #258621110
  • Content of output-metadata.json is not consistent
  • Issue #260059413
  • Setting JVM toolchain does not affect JavaCompile targetCompatibility value
  • Issue #268128036
  • Navigation deepLink entries with wildcard domains don't have an `android:host` attribute in merged manifest
  • Issue #270201653
  • ProcessDebugMainManifest task is failed since Android Gradle Plugin 8.1
  • Issue #213266836
  • Android Studio doesn't respect the STUDIO_GRADLE_JDK environment variable
  • C++ Editor:
  • Issue #271077520
  • C++ editor: syntax highlighting is not working beyond basic pattern matching
  • Compose Preview:
  • Issue #267733147
  • Compose preview cannot show the resource of content in my project [android.content.res.Resources$NotFoundException: Could not resolve resource value: 0xAAE61.]
  • Issue #248802205
  • Code using the vibrator crashes the compose preview
  • Database Inspector:
  • Issue #271871287
  • Android Studio Canary shows no icon for `App Inspection`
  • Design Tools:
  • Issue #252957464
  • Preview xml : Failed to instantiate one or more classes
  • Issue #141363073
  • Changed device for preview in Android Studio`s editor is not saved after exit.
  • Device File Explorer:
  • Issue #272091328
  • Can't use speed search on process table
  • Device Manager:
  • Issue #272342977
  • Device Manager device list does not show extension level
  • Layout Editor :
  • Issue #119884015
  • Bug: missing views in the layout designer : ViewSwitcher and ViewAnimator
  • Lint:
  • Issue #242557502
  • Reformatting just the inserted code of a replace fix
  • Issue #271575376
  • Lint: intention preview throws exception for ReplaceStringQuickFix
  • Motion Editor
  • Issue #183649603
  • MotionLayout:
  • If I change id o fa view object, the function will duplicate the old one and create another new view object.
  • Issue #144375212
  • There is no option to collapse the MotionEditor
  • Issue #174632927
  • Motion editor is not showing with data binding
  • Navigation Editor:
  • Issue #155621385
  • New Destination dialog
  • Issue #207119923
  • Cannot switch the Navigation graph preview orientation by hotkey 'O' now?
  • Issue #204522151
  • Arguments in Navigation Map with CAPS
  • Issue #196847370
  • Bug in Navigation editor - All destinations shown in landscape
  • Issue #152689592
  • Navigation xml editor should show an error when a fragment class is abstract
  • Issue #154531796
  • Kotlin SafeArgs fails with default value for parcelable in action
  • Profilers:
  • Issue #272993909
  • After systrace.py is gone from Android SDK, there seems no way to get working trace for `audio` category
  • Resource Manager:
  • Issue #169962043
  • New Resource Directory dialog doesn't offer androidTest/ as source set
  • Issue #230583012
  • "Create Image Asset" option is constantly not generating the right files, I'll need to run it twice sometimes, sometimes it generates a file then deletes that file when I try to open it

New in Android Studio 2022.3.1 Canary 9 (Mar 14, 2023)

  • Fixed:
  • Android Gradle Plugin:
  • Setting JVM toolchain does not affect JavaCompile targetCompatibility value
  • Navigation deepLink entries with wildcard domains don't have an `android:host` attribute in merged manifest
  • processDebugMainManifest task is failed since Android Gradle Plugin 8.1
  • Can we remove AnalyticsRecordingTask?
  • Content of output-metadata.json is not consistent
  • C++ Editor:
  • C++ editor: syntax highlighting is not working beyond basic pattern matching
  • Compose Preview:
  • apiLevel=21 is ignored in @Preview with regards to applying android:statusBarColor from the right themes.xml file
  • Compose preview cannot show the resource of content in my project [android.content.res.Resources$NotFoundException: Could not resolve resource value: 0xAAE61.]
  • Design Tools:
  • Preview xml : Failed to instantiate one or more classes
  • Changed device for preview in Android Studio`s editor is not saved after exit.
  • Layout Editor:
  • Bug: missing views in the layout designer : ViewSwitcher and ViewAnimator
  • Motion Editor:
  • MotionLayout: If I change id o fa view object, the function will duplicate the old one and create another new view object.
  • There is no option to collapse the MotionEditor
  • Motion editor is not showing with data binding
  • Navigation Editor:
  • New Destination dialog
  • Bug in Navigation editor - All destinations shown in landscape
  • Cannot switch the Navigation graph preview orientation by hotkey 'O' now?
  • Arguments in Navigation Map with CAPS

New in Android Studio 2022.2.1 Beta 5 (Mar 9, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Issue #269598545
  • Build error refers to API level 34, which does not exist
  • Issue #227796082
  • "We recommend using a newer Android Gradle plugin" when there isn't a newer one
  • Android Studio:
  • Issue #270704903
  • AS Electric Eel Running Devices Tool window loses connection to pixel watch while device mirroring

New in Android Studio 2022.3.1 Canary 8 (Mar 6, 2023)

  • Android Gradle Plugin
  • Issue #266135619
  • Namespace property probably belongs to HasAndroidResources
  • Issue #242051158
  • Can't disable "Gradle files have changed since last project sync" message
  • Issue #227796082
  • "We recommend using a newer Android Gradle plugin" when there isn't a newer one
  • Issue #266967487
  • ProcessDebugUnitTestManifest is failing with manifest placeholders for test variants
  • Issue #269759002
  • Boolean flag for disabling compile SDK check in CheckAarMetadataTask
  • Issue #269598545
  • Build error refers to API level 34, which does not exist
  • Android Studio
  • Issue #270704903
  • AS Electric Eel Running Devices Tool window loses connection to pixel watch while device mirroring
  • C++ Editor
  • Issue #266174935
  • [Giraffe | 2022.3.1 Canary 2] On opening CPP file, showing infinite loader in editor.
  • Issue #122874786
  • Feature request - Intention to extract string resource with placeholders from Kotlin string template
  • Compose Editing
  • Issue #175667636
  • [AS] "Create @Composable function" action creates wrong parameter name
  • Issue #182564317
  • Autocomplete for rememberSaveable {} is incorrect
  • Issue #234480434
  • Consider offering an option to use a compose gutter icon to indicate composable function calls
  • Issue #181649371
  • Compose completion leaves the caret at the wrong position
  • Compose Preview
  • Issue #261118410
  • Popup Preview
  • Debugger
  • Issue #146403466
  • ArrayMap debugger does not show keys
  • Issue #252729536
  • Stuck Collecting data... in debug
  • Deployment
  • Issue #267684051
  • New UI: Run bar should include `Attach debugger` action
  • Design Tools
  • Issue #187339385
  • [Custom View] Previewing in the IDE a custom view that embeds a ComposeView leads to a rendering failure
  • Device Manager
  • Issue #270245928
  • [Giraffe Canary 6] Local History corrupt: too many open files
  • Issue #76115372
  • UI not refreshed after -returning- from HAXM Install (3.1 RC3)
  • Issue #227218383
  • Device Manager - Unknown Error
  • Issue #250606186
  • Running apps in debug mode does not work
  • Import/Sync
  • Issue #37069470
  • Add a shortcut for "gradle sync"
  • Issue #267210708
  • PSD dependencies: version catalog dependency experience is different that regular dependency
  • JDK
  • Issue #260992164
  • Blank screen after laptop goes to sleep for multi-monitor setups
  • Issue #266818493
  • Giraffe Canary 2: UI freeze (beachball) on startup: sun.java2d.metal.MTLLayer.blitTexture
  • Lint
  • Issue #269323652
  • TypographyQuotes lint check does not work on escaped quotes
  • Issue #270065082
  • TrustAllX509TrustManager lint check incorrectly flags interfaces that extends X509TrustManager
  • Logcat
  • Issue #268257412
  • Exceptions shown in logcat don't use the device API to navigate to source
  • Issue #235119892
  • Logcat (new version). Clickable filename in log.
  • New Code/Templates
  • Issue #251100802
  • Bug: when minSdk is 26 (Android 8) for a new project, it generates resources that aren't needed, and Lint warns about it and yet doesn't help fixing it
  • Issue #260238294
  • Templates: don't create a drawable-v24 folder when minSdkVersion >= 24
  • New Project Wizard
  • Issue #250802821
  • New Jetpack Compose project that the name starts with numeral does not compile.
  • ProfileInstaller & Baseline Profiles
  • Issue #268476199
  • Unite naming baselineprofiles -> baselineProfiles
  • Project Structure
  • Issue #267040989
  • Version Catalogs upgrade dependency suggestion- the previous dependency version is shown as null
  • Project View
  • Issue #270425765
  • Generated sources shown under `java` node in the Android view
  • Resources
  • Issue #269325492
  • NestedScrollView breaks XML autocomplete under unknown circumstances
  • Issue #37134700
  • No asset name validation in new image asset screen
  • SDK Manager
  • Issue #69034195
  • Missing API Level information when upgrading system images
  • Issue #266965582
  • "HAXM can only be installed on Windows" error message is displayed on Windows
  • Translations Editor
  • Issue #266331462
  • Translations Editor doesn't load

New in Android Studio 2022.2.1 Beta 4 (Mar 2, 2023)

  • Fixed Issues:
  • ProcessDebugUnitTestManifest is failing with manifest placeholders for test variants
  • Lint accesses source sets information without dependencies
  • Blank screen after laptop goes to sleep for multi-monitor setups
  • Giraffe Canary 2: UI freeze (beachball) on startup: sun.java2d.metal.MTLLayer.blitTexture
  • Java.lang.VerifyError: Verifier rejected class androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object) failed to verify: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object): [0x0] cannot access instance field java.lang.Object androidx.compose.ui.graphics.colorspace.n.a from object of type Precise Reference: androidx.compose.ui.graphics.colorspace.o
  • AGP 7.4.0/7.3.1 - Attempt to enqueue an action in a non pushable enqueuer work list
  • Minifying Renderscript code: huge performance drop when upgrading AGP from 7.3.1 to 7.4.0

New in Android Studio 2022.3.1 Canary 7 (Feb 28, 2023)

  • Android Gradle Plugin:
  • processDebugUnitTestManifest is failing with manifest placeholders for test variants
  • Code Editor
  • Feature request: Intention to extract string resource with placeholders from Kotlin string template
  • Compose Editing:
  • Consider offering an option to use a compose gutter icon to indicate composable function calls
  • Compose completion leaves the caret at the wrong position
  • Autocomplete for rememberSaveable {} is incorrect
  • Debugger:
  • ArrayMap debugger does not show keys
  • Stuck Collecting data... in debug
  • Device Manager:
  • UI not refreshed after -returning- from HAXM Install (3.1 RC3)
  • Import/Sync:
  • PSD dependencies: version catalog dependency experience is different that regular dependency
  • JDK:
  • Blank screen after laptop goes to sleep for multi-monitor setups
  • Giraffe Canary 2: UI freeze (beachball) on startup: sun.java2d.metal.MTLLayer.blitTexture
  • Logcat
  • Logcat (new version). Clickable filename in log.
  • Project Structure:
  • Version Catalogs upgrade dependency suggestion- the previous dependency version is shown as null
  • SDK Manager:
  • "HAXM can only be installed on Windows" error message is displayed on Windows
  • Missing API Level information when upgrading system images

New in Android Studio 2022.3.1 Canary 6 (Feb 21, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • ProcessDebugUnitTestManifest is failing with manifest placeholders for test variants
  • Code Editor:
  • Issue #Feature request - Intention to extract string resource with placeholders from Kotlin string template
  • Compose Editing:
  • Consider offering an option to use a compose gutter icon to indicate composable function calls
  • Debugger:
  • Stuck Collecting data... in debug
  • Device Manager:
  • UI not refreshed after -returning- from HAXM Install (3.1 RC3)
  • Import/Sync:
  • PSD dependencies - version catalog dependency experience is different that regular dependency
  • Logcat:
  • Logcat (new version). Clickable filename in log.
  • Project Structure:
  • Version Catalogs upgrade dependency suggestion- the previous dependency version is shown as null
  • SDK Manager:
  • "HAXM can only be installed on Windows" error message is displayed on Windows
  • Missing API Level information when upgrading system images

New in Android Studio 2022.2.1 Beta 3 (Feb 17, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Lint plugin is not part of gradle-api
  • DexingFileDependenciesTask.outputKeepRules is a directory but is marked as an OutputFile
  • Upgrading to AGP 7.4 results in a StackOverflowError
  • Compose Preview:
  • AS Flamingo Alpha 10 Compose Preview PermittedSubclasses requires ASM9
  • Dexer (D8):
  • Update Kotlin metadata library to version 0.6.0
  • Import/Sync:
  • Gradle sync failed on AS 2022.3.1 Canary 2
  • Cannot invoke GradleSyncListener.syncFailed" because "syncListener" is null
  • JDK:
  • Blank screen after laptop goes to sleep for multi-monitor setups
  • Giraffe Canary 2: UI freeze (beachball) on startup: sun.java2d.metal.MTLLayer.blitTexture
  • Network Inspector:
  • TrackedHttpURLConnection.getHeaderField crashes with NullPointerException
  • Shrinker (R8):
  • NPE / assertion error in CF frame verifier
  • Regression after removal of field lookup cache
  • `:app:minifyVariantWithR8` throws a NullPointerException in AGP 7.4.0-beta02
  • R8: ClassNotFoundException when -allowaccessmodification
  • Add support for context receivers in metadata

New in Android Studio 2022.3.1 Canary 5 (Feb 16, 2023)

  • Fixed issues:
  • Android Gradle Plugin:
  • ClassNotFoundException in dynamic feature that depends directly on Kotlin library subproject
  • JDK:
  • Blank screen after laptop goes to sleep for multi-monitor setups
  • Giraffe Canary 2: UI freeze (beachball) on startup: sun.java2d.metal.MTLLayer.blitTexture

New in Android Studio 2022.3.1 Canary 4 (Feb 10, 2023)

  • Android Gradle Plugin:
  • Upgrading to AGP 7.4 results in a StackOverflowError
  • Import/SyncL:
  • [Flamingo | 2022.2.1 Canary 6][Mac M1]Default JDK Version is 11.0.5 instead of 17.0.4
  • Cannot invoke GradleSyncListener.syncFailed" because "syncListener" is null
  • Gradle sync failed on AS 2022.3.1 Canary 2

New in Android Studio 2022.3.1 Canary 3 (Feb 8, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Setting `isProfileable` true when creating new build type breaks build
  • Update defaults for privacy sandbox shim
  • AGP 8.0.0-beta01 and 8.1.0-alpha01 are incompatible with Gradle 8.0-rc-2
  • Compose Preview:
  • Wear Compose device previews use wrong background
  • AS Flamingo Alpha 10 Compose Preview PermittedSubclasses requires ASM9
  • Emulator:
  • Bug: key bindings that are set to mouse keys don't do anything on emulator
  • Import/Sync:
  • Updating gradle-wrapper.properties does not start a new Gradle daemon
  • Lint:
  • GradleDynamicVersion lint: false positive when using explicit @aar qualifier
  • GradleDependency lint: false positive when using explicit @aar qualifier
  • ProfileInstaller & Baseline Profiles:
  • Non-stable `assets/dexopt/baseline.profm` when rerun with --rerun-tasks
  • Running Devices:
  • Bug: duplicate key binding names
  • Resizable emulator does not open into unfolded foldable device

New in Android Studio 2022.2.1 Beta 2 (Feb 8, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Issue #265809620
  • AGP 8.0.0-beta01 and 8.1.0-alpha01 are incompatible with Gradle 8.0-rc-2
  • Compose Preview :
  • Issue #262773698
  • Compose Preview broken when using HTML text with b-Tags
  • Issue #246287706
  • "Render issues" found while rendering Compose previews, but the Problems tab is empty
  • Installer:
  • Issue #265309504
  • Android Studio Electric Eel | 2022.1.1 can't open Windows 11
  • Layout Editor:
  • Issue #257280452
  • Exception in Layout editor
  • Logcat:
  • Issue #263475910
  • Cannot type @ (conflict from logcat shortcut)

New in Android Studio 2022.3.1 Canary 2 (Jan 26, 2023)

  • Fixed Issues:
  • Android Gradle Plugin:
  • [Android Studio : Flamingo | 2022.2.1 Canary 8] liblog.so is packaged inside the APK
  • KGP reads manifest during configuration, invalidating configuration cache on manifest change
  • Build warning message unclear when problem in merged manifest
  • Compose Preview:
  • "Render issues" found while rendering Compose previews, but the Problems tab is empty
  • Deployment:
  • com.intellij.diagnostic.PluginException: 345 ms to call on EDT DeviceAndSnapshotComboBoxAction#update@NavBarToolbar
  • Emulator:
  • Record Screen hangs when switching emulators during recording
  • Import/Sync:
  • Updating gradle-wrapper.properties does not start a new Gradle daemon
  • Installer:
  • Android Studio Electric Eel | 2022.1.1 can't open Windows 11
  • Lint:
  • Lint false positive about remember after Kotlin upgrade to 1.8.0
  • False positive Lint warning for SDK_INT checks performed inside a method with a enum parameter
  • New Project Wizard:
  • Sluggish painting performance in the new project template chooser
  • Running Devices:
  • Loading of Quickboot snapshot always fails and takes the emulator with it
  • SDK Manager:
  • NDK fails to install due to checksum error

New in Android Studio 2022.1.1.19 (Jan 12, 2023)

  • SDK insights:
  • View dependency insights from the new Google Play SDK Index, a public portal with information about popular dependencies, or SDKs. If a specific version of a library has been marked as outdated by its author, a corresponding Lint warning appears when viewing that dependency definition. This enables you to discover and update dependency issues during development instead of later when you go to publish your app on the Play Console. You can learn more about this new tool on the Android Developer's Blog post here.
  • App Quality Insights from Firebase Crashlytics:
  • Starting with Android Studio Electric Eel, you can see and act on app crash data from Firebase Crashlytics directly in the IDE. This integration pulls stack trace data and crash statistics from Crashlytics into the new App Quality Insights tool window in the IDE, so you don't have to jump back and forth between your browser and the IDE. Development teams can benefit from key capabilities including the following:
  • See lines in your code highlighted when they have related Crashlytics event data.
  • See the stack trace for top crashes and click on the stack trace to jump to the relevant lines in your code.
  • See summary statistics about top crash and non-fatal events, for example grouped by device manufacturer and Android version.
  • Filter events by severity, time, and app version.
  • Get a browser link that opens the Crashlytics dashboard page with more details about the event.
  • With the Android Studio and Crashlytics integration, you can write code and address top crash issues all in the same spot. This enriched development experience helps you stay informed about your app's performance and minimize disruptions for your users. If you encounter any issues with this feature, file a bug.
  • If you're not using Crashlytics yet and would like to learn more about its offerings, see Firebase Crashlytics.
  • Navigate Crashlytics data in Android Studio:
  • The App Quality Insights tool window has rich data that gives you insight into the events your users are encountering, and links to help you quickly navigate to the sources of those events.
  • App Quality Insights tool window:
  • If your project includes multiple app modules, make sure the module you want to see event data for is selected from the module dropdown menu.
  • Use the application ID dropdown menu to select the app ID you want to analyze. For example, while you might work on the debug version of your app in the IDE, you might want to see event data for your production version of your app that your users install.
  • The Issues panel shows the top events that Crashlytics has data for, and is sorted by your most impactful crashes.
  • The Sample Stack Trace panel shows details about the latest occurrence of the event you click on in the Issues panel. You can see the event's stack trace and click on the stack trace to jump to the relevant lines in your code base.
  • There is also information about the device type affected, its Android version, and the time the event occurred, as well a link to the event in the Firebase Crashlytics dashboard. The dashboard is useful if you want to dive deeper and inspect additional stack traces, trends, and custom logs.
  • The Details panel breaks down the crash counts by device type and Android version, so you can determine which user groups are most affected. It also shows which app version(s) experienced the crash and the number of users affected.
  • Use the severity filters to select or deselect events that are Fatal or Non-Fatal .
  • Use the time range and app version filters to hone in on certain subsets of events.
  • In addition to being able to navigate from stack trace to code, you can also jump from code to stack trace: Android Studio now highlights lines of code that are related to crashes so you can easily spot and debug them.
  • Resizable emulator:
  • You can now test your app on multiple screen sizes and with a single resizable emulator. Testing on a single resizable emulator not only allows you to rapidly test changes across different interfaces, but also promotes a smoother development experience by saving the compute resources and memory that would be required to maintain separate virtual devices.
  • To use the resizable emulator, you need Android Emulator version 31.1.3 or higher. To upgrade versions, go to Tools > SDK Manager. To create a resizable Android Virtual Device (AVD), follow these steps:
  • In the create device flow, select the Resizable (Experimental) phone hardware profile.
  • Download the Android Tiramisu system image.
  • Follow the prompts to create the AVD.
  • When you deploy your app to the resizable emulator, use the Display Mode dropdown in the emulator toolbar to quickly toggle between a set of common device types. The emulator screen resizes so you can easily test your app across a range of screen sizes and densities.
  • Visual linting for Views:
  • Android Studio now automatically runs your layout to check for visual lint issues across different screen sizes for layouts written in Views. When you open Layout Validation, you can see all your layouts render in multiple device sizes. If there's an issue, it appears in the Problems panel, which is designed to show all issues within design tools.
  • Device mirroring:
  • You can now mirror your device in the Running Devices window in Android Studio Electric Eel. By streaming your device's display directly to Android Studio, you can execute common actions such rotating the screen, changing the volume, or locking/unlocking the device right from the IDE itself.
  • Device mirroring is available in the Electric Eel Canary channel as an experimental feature. To turn it on manually, navigate to File > Settings > Experimental (Android Studio > Preferences > Experimental on a Mac), and check the box next to Device Mirroring.
  • AGP Upgrade Assistant post-upgrade report and rollback functionality:
  • The AGP Upgrade Assistant now includes a post-upgrade report. This report describes the steps that were completed and if the upgrade was successful or unsuccessful. It also includes an action to revert changes that were made by the upgrade assistant, if there are issues building or testing the project after the upgrade.
  • Updates to Logcat:
  • The Logcat window UI
  • In Android Studio Electric Eel, the new version of Logcat is enabled by default to make it easier to parse, query, and keep track of logs. This represents the most significant update to the tool since its introduction, so read View logs with Logcat for more details on how to use the new functionality and query syntax.
  • Desktop Android Virtual Device now available:
  • You can now test how your app works on desktop devices such as Chromebooks by using a Desktop Android Virtual Device (AVD). Users often interact with apps differently on large screen devices, and the Desktop AVD enables you to see how your app behaves in this environment. Here are some of the unique functionalities you can test:
  • App resizing: resize your app by dragging the window edges.
  • Freeform window management: place your app in various places on the desktop screen, and minimize, maximize, and restore the app window.
  • Notifications - check that the notifications render correctly when pulled up from the system tray on the desktop.
  • Check download impact using Build Analyzer:
  • Build Analyzer now provides a summary of time spent downloading dependencies and a detailed view of downloads per repository. You can use this information to determine whether unexpected dependency downloads are negatively impacting your build performance. This is especially important during incremental builds, which shouldn't consistently download artifacts.
  • Specifically, you can use this information to identify configuration issues, such as use of dynamic versions of dependencies that cause unexpected downloads. Also, if you see a high number of failed requests for a specific repository, it could indicate that the repository should be removed or moved lower in your repository configuration.
  • Layout Inspector recomposition rendering highlights:
  • In Android Studio Electric Eel, your recompositions are highlighted to help you determine where in the UI your composables are recomposing. The highlighted portion shows a gradient overlay of the composable in the image section of the Layout Inspector, and gradually disappears so that you can get an idea of where in the UI the composable with the highest recompositions can be found. If one composable is recomposing at a higher rate than another composable, then the first composable receives a stronger gradient overlay color. For more details, see Compose recomposition counts in Layout Inspector.
  • Universal Problems panel:
  • You can now view all the issues for your design tools in a shared issue panel. To view the tool window, navigate to View > Tool Windows > Problems.
  • Live updates to your Compose Preview:
  • Starting with Android Studio Electric Eel, you can see immediate updates to your Preview changes as you make them. For more information, see Composable Preview.
  • Use Compose Preview with different devices:
  • In Android Studio Electric Eel, you can edit the device parameter of the Preview annotation to define configurations for your Composables in different devices. For more details, see Use with different devices.
  • Android Gradle plugin and Android Studio compatibility:
  • The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to building Android apps. The following table lists which version of the Android Gradle plugin is required for each version of Android Studio.

New in Android Studio 2022.2.1 Canary 11 (Jan 4, 2023)

  • Fixed Issues:
  • Build Analyzer:
  • NPE in TasksTreeStructure.updateStructure (Build Analyzer)
  • Emulator:
  • Privacy warning has to be shown when user enables device mirroring in Settings

New in Android Studio 2022.1.1 Electric Eel RC 3 (Dec 28, 2022)

  • Android Gradle Plugin:
  • R8.jvmArgs don't get used
  • Deployment:
  • 260517780
  • Device mirroring error
  • Fragment :
  • Issue #237567009
  • Fragment DialogFragmentCallbacksDetector Lint is broken when I upgrade to lint 30.4.x (AGP 7.4.x)
  • Import/Sync:
  • No run configurations created for modules with "com.android.test" Gradle plugin
  • Frozen IDE attempting kotlin method refactor in large project
  • Lint:
  • NPE due to querying Application instance in mergeOnly mode
  • Shrinker (R8):
  • [R8 3.3.68] Crash on some Android 6 devices after upgrading from R8 3.2
  • Latest version com.android.tools.build:gradle:7.3.1 with okhttp 3.12.13 crashes on Android API 16
  • R8 doesn't properly obfuscate enum constant values for Kotlin enum class
  • Issue #259298098
  • R8 stripping out unused field, causes NPE in the code down below in the class constructor.
  • Creating an D8 AppInfo for horizontal merging may invalidate D8 type assumptions

New in Android Studio 2022.2.1 Canary 10 (Dec 22, 2022)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Instrumentation API does not transform local file dependencies
  • `AnnotationProcessorOptions.arguments are queried` error when updating to 7.4 Beta 1
  • Move Gradle public plugins to gradle-api and remove BasePlugin.getExtension
  • r8.jvmArgs don't get used
  • JDK17 as min version required for AGP
  • AGP 8.0.0 A8 breaks baseline profiles:
  • Change 'compileSdkVersion' to 'compileSdk' in CheckAarMetadataTask message in AGP 8.0
  • AGP 7.4.0-rc01 breaks Variant API with "Querying the mapped value of map(provider(java.util.Set)) before task '...' has completed is not supported"
  • Android Studio:
  • Don't show irrelevant Java preview features popup
  • APK Viewer:
  • Baseline Profiles rules Too Large
  • Decode Baseline Profiles for App Bundles
  • AVD Preview:
  • Vector Asset is unable to load SVG file
  • Build Analyzer:
  • No "new build warnings available" notification from Build Analyzer
  • Code Editor:
  • AppLinksAutoVerify doesn't support 301 redirects
  • Compose Editing
  • Deprecated compose `Image` import promoted above non-deprecated versions
  • Deployment:
  • Device mirroring error
  • Design Tools:
  • Converting SVG to Android Vector Graphics fails for linear gradients because of xref:href elments
  • Dexer (D8)
  • Dex merging error related to global synthetics after upgrading AS Canary 6 to 7
  • Emulator:
  • Random emulator kernel CRASH related to WLAN emulation (mac80211_hwsim)
  • Tooltip for camera control resize emulator
  • Fragment:
  • Fragment DialogFragmentCallbacksDetector Lint is broken when I upgrade to lint 30.4.x (AGP 7.4.x)
  • Import/Sync:
  • JDK missing from the IDE
  • Adding sources after variants are created breaks sync
  • Android Support Plugin error messages need rewording
  • Layout Editor:
  • LinearLayout horizontal and vertical icons can be misleading
  • Lint:
  • AccessibilityDetector lint check explanation is outdated
  • Lint SDK_INT checks should understand temporary local variables
  • Error when TestMode.TYPE_ALIAS replace Function type with typealias
  • Bug: when ObjectAnimator is created outside of current code block, there are false-positive warnings of not starting it #38
  • Lint: NPE due to querying Application instance in mergeOnly mode
  • NonConstantResourceId lint rule cannot detect to assign constant values from resource id
  • not showing error on view id
  • Failure to deserialize lint resources cache results in a lint error (but should be a warning)
  • AGP Flamingo Alpha 8 Lint NewApi Desugar Regression
  • Lint Integration:
  • Baseline file is currently an Input and an Output of the Lint tasks
  • Logcat:
  • Add a Right Click Action to Copy Message Text
  • ProfileInstaller & Baseline Profiles
  • Expose addMetadata for Hawkeye tests
  • Resources:
  • Refactoring XML Color (NOT File) Name Denies Use of Uppercase Character as Invalid File Name
  • Running Tests:
  • Every time I run unit tests with coverage I have to recompile (twice)
  • Upgrade Assistant:
  • Upgrading to AS Flamingo Canary 9 cause project to fail when Custom BuildConfig fields are used in gradle file.

New in Android Studio 2022.1.1 Electric Eel RC 2 (Dec 22, 2022)

  • General fixes:
  • This update addresses the following issues. For details of new features and bugs fixed in each preview release, see previous entries on this blog.
  • Android Gradle Plugin
  • Issue #258704137: r8.jvmArgs don't get used
  • Deployment:
  • Issue #260517780: Device mirroring issue
  • Fragment:
  • Issue #237567009: Fragment DialogFragmentCallbacksDetector Lint is broken when I upgrade to lint 30.4.x (AGP 7.4.x)
  • Import/Sync:
  • Issue #256669321: No run configurations created for modules with "com.android.test" Gradle plugin
  • Issue #248576926: Frozen IDE attempting kotlin method refactor in large project
  • Lint:
  • Issue #259140252: Lint: NPE due to querying Application instance in mergeOnly mode
  • Shrinker (R8):
  • Issue #238399429: [R8 3.3.68] Crash on some Android 6 devices after upgrading from R8 3.2
  • Issue #258270051: Latest version com.android.tools.build:gradle:7.3.1 with okhttp 3.12.13 crashes on Android API 16
  • Issue #259389417: R8 doesn't properly obfuscate enum constant values for Kotlin enum class
  • Issue #259298098: R8 stripping out unused field, causes NPE in the code down below in the class constructor.
  • Issue #259933493: Creating an D8 AppInfo for horizontal merging may invalidate D8 type assumptions

New in Android Studio 2022.1.1 Electric Eel RC 1 (Nov 30, 2022)

  • General fixes:
  • This update addresses the following issues. For details of new features and bugs fixed in each preview release, see previous entries on this blog.
  • Android Gradle Plugin:
  • Issue #241469653: AGP 7.4.0-alpha09 generates builds that won't upload into Firebase App Distribution
  • Compose Preview:
  • Issue #248473636: jetified font/myfont.xml does not exist (or is not a file)
  • Import/Sync:
  • Issue #248658503: OutputBuildAction has been compiled by a more recent version of the Java Runtime
  • Kotlin Plugin:
  • Issue #238235642: Regression in EE - Extracting a method sometimes doesn't work
  • Profilers:
  • Issue #256641354: Bottom Up view of simpleperf trace not populating correctly in Flamingo C6
  • Release Bundle/APKs:
  • Issue #119886985: 'Generate Signed Bundle / APK' - destination path should depend on the module
  • Running Tests:
  • Issue #241426924: Every time I run unit tests with coverage I have to recompile (twice)
  • Upgrade Assistant:
  • Issue #249325631: Upgrade assistant does not handle settings plugin

New in Android Studio 2022.2.1 Canary 8 (Nov 8, 2022)

  • Android Gradle Plugin:
  • Issue #241469653: AGP 7.4.0-alpha09 generates builds that won't upload into Firebase App Distribution
  • C++ Build:
  • Issue #233950747: Move c++ logging to a background thread
  • Issue #233947045: Read cmake version lazy not during configuration
  • Compose Editing:
  • Issue #155314487: MaterialTheme suggestion order
  • Databinding:
  • Issue #238964168: Databinding compiler no longer resolve types in multiplatform library with kotlin 1.7.0
  • Release Bundle/APKs:
  • Issue #119886985: 'Generate Signed Bundle / APK' - destination path should depend on the module

New in Android Studio 2022.1.1 Electric Eel Beta 5 (Nov 8, 2022)

  • General fixes and features:
  • The following is list of general fixes in Android Studio Electric Eel Beta 5. 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:
  • Issue #252848749: Gradle 8.0-milestone-2 causes exception in AGP
  • Layout Editor:
  • Issue #254894488: 138MB memory leak in CustomViewPreviewRepresentation
  • Shrinker (R8):
  • Issue #251015885: [R8 4.0.30] Cannot constrain type: LONG for value: v147 by constraint: OBJECT

New in Android Studio 2022.2.1 Canary 7 (Nov 3, 2022)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Gradle 8.0-milestone-2 causes exception in AGP
  • Optimize manifest merging for apps and library
  • Add gradle-settings-api to the javadoc generation
  • New "unknown enum constant" from javac on AGP 7.4.0-alpha09
  • API:
  • buildConfigField overrides now emit warnings with gradle plugin 3.0.0
  • Compose Editing:
  • Compose function call highlighting missing in Darcula theme
  • Add Imports for composable functions is often unreadable
  • Compose Preview:
  • jetified font/myfont.xml does not exist (or is not a file)
  • Device Manager:
  • Editing an AVD enables the Device Frame, ignoring previous setting
  • Emulator:
  • "Stay awake" setting is not restored when the device is disconnected
  • Screen mirroring Tap disconnect the device
  • Layout Editor:
  • AS 2021.1.1 Patch 3: Problems in Inputtype
  • 138MB memory leak in CustomViewPreviewRepresentation
  • Spinner's tools:listitem doesn't render properly when used inside an include tag.
  • Layout Inspector:
  • Layout Inspector does not inspect Compose if the version is excluded from the running app
  • Lint:
  • Lint: PartialResults merging works incorrectly
  • Logcat:
  • Request: for LogCat, also allow to hide the log-level
  • Wear:
  • Android Emulator. Wear OS Round. Reverts to square.

New in Android Studio 2022.1.1 Electric Eel Beta 4 (Oct 31, 2022)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Gradle 8.0-milestone-2 causes exception in AGP
  • Optimize manifest merging for apps and library
  • Add gradle-settings-api to the javadoc generation
  • API:
  • buildConfigField overrides now emit warnings with gradle plugin 3.0.0
  • Compose Editing:
  • Compose function call highlighting missing in Darcula theme
  • Compose Preview:
  • jetified font/myfont.xml does not exist (or is not a file)
  • Device Manager:
  • Editing an AVD enables the Device Frame, ignoring previous setting
  • Emulator :
  • Screen mirroring Tap disconnect the device
  • Layout Editor:
  • AS 2021.1.1 Patch 3: Problems in Inputtype
  • In Layout window, Switching from Design to Split view, the xml view doesn't scroll to selected component.
  • Right click on view row in Layout Editor does not open contextual menu, need to click on view id/type exactly
  • Guideline percentage not showing in design view when given via dimens values
  • Layout Margin Doesn't work properly:
  • Spinner's tools:listitem doesn't render properly when used inside an include tag.
  • Layout Inspector:
  • Layout Inspector does not inspect Compose if the version is excluded from the running app
  • Lint:
  • Lint: PartialResults merging works incorrectly
  • Logcat:
  • Request: for LogCat, also allow to hide the log-level
  • Running Tests:
  • "Invalid dynamic link" at https://g.co/androidstudio/not-mocked
  • Testing:
  • g.co/androidstudio/not-mocked is not useful any more

New in Android Studio 2022.1.1 Electric Eel Beta 3 (Oct 24, 2022)

  • Fixed Issues:
  • Stop creating androidJacocoAnt configuration if coverage is not enabled
  • Using @IntDef in a library component doesn't generate annotations.zip in the aar
  • Take `--release` flag into account when setting up JavaCompile task
  • Overriding resources with resValue in build.gradle leads to Error: Duplicate resources
  • generated source directory listed as Java directory in lint model's main source provider
  • Gradle sync failed: Sync failed: reason unknown
  • DependencyReportTask is incompatible with the configuration cache
  • Unable to find common super type for and
  • Using dynamic features and resource shrinking cause runtime crash
  • Migrate from destination property to outputLocation property to address deprecation warning and prepare for Gradle 9.0
  • 'debug' build type has default signing key, others do not
  • C++ Debugger:
  • Native breakpoints not working since Android Studio 2021.1.1
  • Code Editor:
  • Extracting string resource may include qoutes (" ")
  • Inspection "RegExp" > "Redundant character escape" mistakes "\}" as redundant
  • Compose Editing:
  • Jetpack Compose syntax highlighting is inconsistent
  • Compose Preview:
  • DropdownMenu expanded in incorrect position in Preview Interactive Mode
  • Debugger:
  • Debug sources default to compileSdkVersion instead of the emulator version
  • Dependency Management:
  • Remove ancient build-tools
  • Emulator:
  • Screen mirroring Tap disconnect the device
  • Import/Sync:
  • Cherry-pick platform fix for IDEA-303282
  • Compiler options are not included with IDE Gradle sync
  • IllegalStateException: Build (name=':') not found
  • Kotlin Multiplatform project fails to import in AS 2022.1.1 Beta 1
  • Layout Editor:
  • Time View Widgets
  • Design preview no longer working if any attribute is missing from theme
  • incorrect default inputType for editText
  • Incorrect handling of gravity attribute in blueprint view
  • Support for sampledata directories to be picked up transitively for use in multi-module projects
  • RTL Refactoring tries to edit App Compat files
  • Duplicate options on Component Tree in design mode of layout editor
  • Android Studio is adding absolute position attributes on ConstraintLayout Groups
  • XML preview Render Problem with font_family
  • Custom Views Preview Error:
  • Suggestion: Cell of Item property view should be size changeable
  • Lint:
  • Lint false positive Recycle regarding openInputStream
  • [BuildTool/Lint] ChecksSdkIntAtLeast constructor property
  • Logcat:
  • [LogcatV2] Wrong hotkey hint if you change default `control + space`
  • Logs stopped showing on console
  • Network Inspector:
  • Network Inspector displays requests twice if the OkHttpClient was built from another OkHttpClient using newBuilder()
  • New Code/Templates:
  • An empty meta-data tag added to new projects

New in Android Studio 2022.2.1 Canary 6 (Oct 24, 2022)

  • Fixed Issues:
  • Logcat:
  • Request: for LogCat, also allow to hide the log-level

New in Android Studio 2022.2.1 Canary 2 (Sep 27, 2022)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Issue #206674992
  • Flaky build failure in MergeResources task
  • Issue #241354494
  • JavaPluginConvention and HasConvention is deprecated
  • Issue #174678813
  • Wrong and inconsistent file location for new transform API
  • Issue #245405989
  • Android Gradle Plugin should not use the deprecated GUtil.toWords(string) function
  • Issue #245405994
  • Android Gradle Plugin should not use the deprecated ConfigureUtil.configure(closure, target) function
  • Issue #241886012
  • Update AGP tests to use KGP 1.7.20-Beta
  • Issue #226095015
  • Gradle 7.4 fails (could not create instance of AnalyticsService)
  • Issue #241287611
  • New "unknown enum constant" from javac on AGP 7.4.0-alpha09
  • API:
  • Issue #223367107
  • Variant API: In AGP 7.1+, updates to new variant objects are not forwarded to old variant objects
  • C++ Editor:
  • Issue #244077415
  • External C++ .h cannot be located in Android project view
  • Code Editor:
  • Issue #205057065
  • Disable wildcard imports by default for Kotlin projects in Android Studio
  • Deployment:
  • Issue #242750760
  • Project leak via AndroidProcessHandler/SingleDeviceAndroidProcessMonitor
  • Device Manager:
  • Issue #227612716
  • Device Manager shows Auto images for phone selection
  • Emulator:
  • Issue #242757484
  • Android TV Hardware profile shows incorrect device size
  • Issue #245345174
  • unable to download the image for Android 12.0 without Google APIs for the ABI arm64-v8a on my MacBook Pro 14
  • Import/Sync:
  • Issue #208357458
  • Cannot sync project with KMP module in Chipmunk with MPSS
  • Issue #244573612
  • Avoid querying for KMP models in order to determine if a module is a KMP one
  • Issue #244706775
  • //tools/adt/idea/project-system-gradle:intellij.android.projectSystem.gradle.tests_tests fails on JDK17
  • Issue #243955195
  • Kotlin Multiplatform project fails to import in AS 2022.1.1 Canary 10
  • Memory:
  • Issue #189225938
  • Memory Profile tool showing 0.2 GB instead of 150 MB
  • Upgrade Assistant:
  • Issue #189366810
  • AGP Upgrade assistant should handle projects using android.disableAutomaticComponentCreation

New in Android Studio 2021.3.1.16 (Sep 16, 2022)

  • New in Compose:
  • The following are new features and improvements to Jetpack Compose in Android Studio.
  • Compose Animation Coordination
  • If your animations are described in a composable preview, you can now use Animation Preview to inspect and coordinate all of them at once. You can also freeze a specific animation.
  • Compose Multipreview Annotations:
  • You can now define an annotation class that includes multiple Preview definitions and use that new annotation to generate those previews at once. Use this new annotation to preview multiple devices, fonts, and themes at the same time—without repeating those definitions for every single composable.
  • Compose Recomposition Counts in Layout Inspector:
  • When debugging your Compose layouts, knowing when composables do or do not recompose is important in understanding whether your UI is implemented properly. For example, if it's recomposing too many times, your app might be doing more work than is necessary. On the other hand, components that do not recompose when you expect them to can lead to unexpected behaviors.
  • The Layout Inspector now allows you to see when discrete composables in your layout hierarchy have either recomposed or skipped. This information is shown live, while you interact with your app. To get started, make sure your app is using Compose 1.2.0-alpha03 or higher. Then deploy your app as you normally would.
  • Open the Layout Inspector window and connect to your app process. In the Component Tree, you should see two new columns appear next to the layout hierarchy. The first column show the number of compositions for each node. The second columns displays the number of skips for each node. You can also see similar information in the Attributes pane when you select a composable from the Component Tree or the Layout Display.
  • If you want to reset the count, click Reset near the top of the Component Tree panel. Resetting the count can help you understand recompositions or skips during a specific interaction with your app.
  • Updated Wear OS emulator pairing assistant:
  • Starting with Android Studio Dolphin Canary 3, the Wear OS emulator pairing assistant has improved features that make it easier to manage and connect Wear emulators. You can now do the following:
  • See Wear devices in the Device Manager.
  • Pair multiple Wear devices with a single virtual or physical phone.
  • Automatically reconnect previously paired devices when they’re launched. Android Studio now remembers and re-pairs the last pair set up.
  • To use these new features, make sure your phone emulators are API level 30 or higher and have the Google Play Store installed. Also, make sure your Wear emulators are API level 28 or higher. To upgrade to the latest system images for your emulated devices, go to Tools > SDK Manager.
  • Updated Wear OS emulator toolbar:
  • Starting with Android Studio Dolphin Canary 2, for Wear emulators with API level 28 or higher, the emulator toolbar now has buttons that simulate the physical buttons and common actions on the device. The new buttons are: Button 1 and Button 2 (Button 2 is only available on API level 30 or higher), the Palm button, and the Tilt button. Here are some of the actions you can do using the new buttons on your Wear emulator:
  • To set your device to ambient mode, click the Palm button.
  • To return your device to the last screen it was on before ambient mode, click the Tilt button.
  • New Wear OS run configurations:
  • New run configurations have been added to quickly run and debug surfaces specific to Wear OS like watch faces, Tiles, and complications. You can create these new configurations from the Run/Debug Configurations dialog when running your application.
  • New Logcat:
  • Logcat has been updated to make it easier to parse, query, and track logs.
  • New formatter:
  • Logcat now formats logs to make it easier to scan useful information, such as tags and messages, and identify different types of logs, such as warnings and errors.
  • Create multiple Logcat windows:
  • You can now create multiple tabs within Logcat, so that you can easily switch between different devices or queries. Right-clicking a tab allows you to rename it, and you can click and drag to rearrange the tabs.
  • Additionally, to help you more easily compare between two sets of logs, you can now split the view within a tab by right-clicking in the log view and selecting either Split Right or Split Down. To close a split, right-click and select Close. Each split allows you to set its own device connection, view options, and query.
  • Switch between view presets:
  • Logcat now allows you to quickly switch between different view modes—Standard, Compact, and Custom—by clicking View mode selector. Each view mode provides a different default setting for showing you more or less information, such as timestamps, tags, and process IDs (PID). You can also customize each of these default view modes, as well as a custom view mode, by selecting Modify View.
  • New key-value search:
  • In the previous version of Logcat, you had the option to either use string search (with support for regular expressions) or create a new filter by populating various fields using the Logcat UI. The first option made search more complex and the second option made sharing and setting up queries more difficult. We’ve now simplified the experience by introducing key-value searches right from the main query field.
  • This new query system provides the accuracy of what you want to query, without relying on regular expressions, with the ability to recall past queries from history, and share those queries with others. Additionally, you still have the option to use RegEx and also exclude logs based on key-values.
  • Track logs across app crashes/restarts:
  • The new Logcat now makes it easier to track logs from your app across app crashes and restarts, so that you don’t miss important logs across these events.
  • Gradle Managed Devices:
  • In order to improve consistency, performance, and reliability when using Android Virtual Devices for your automated instrumented tests, we’re introducing Gradle Managed Devices. This feature, available for API levels 27 and higher, allows you to configure virtual test devices in your project's Gradle files. The build system uses the configurations to fully manage—that is, create, deploy, and tear down—those devices when executing your automated tests.
  • This feature grants Gradle visibility into not only the tests you’re running, but also the lifecycle of the devices, thus improving the quality of your testing experience in the following ways:
  • Handles device-related issues in order to ensure your tests are executed
  • Utilizes emulator snapshots to improve device startup time and memory usage, and restore devices to a clean state between tests
  • Caches test results and reruns only tests that are likely to provide different results
  • Provides a consistent environment for running your tests between local and remote test runs
  • Additionally, Gradle Managed Devices introduce a new type of Emulator device, called Automated Test Devices (ATD), that are optimized to improve performance when running your instrumentation tests. Combined with support for test sharding, you can experiment with splitting your test suite across multiple ATD instances in order to reduce overall test execution time. To learn more about Gradle Managed Devices and its associated features, see Scale your tests with Gradle Managed Devices.
  • R8 support using mapping files based on DEX instruction offsets:
  • When optimizing line information, R8 can now encode the information in shared debug information objects with line tables based on instruction offsets. This substantially reduces the overhead of line information. The effect is that lines in methods are no longer consecutive but might jump at intervals depending on the size of the instructions. Note that some tooling does not consider this shared encoding.
  • In addition, Android VMs starting from O (API Level 26) support printing instruction offsets in stack traces if the method has no line number information. When compiling with minSdk 26 or higher, and with no source file information, R8 strips the line number information completely.
  • Stateless lambdas are no longer desugared as singletons:
  • Stateless lambdas are no longer allocated as singletons when desugaring. The representation as singletons adds code size overhead due to the added field and class initializer, as well as startup overhead, due to static class initialization. Stateless lambdas are now allocated at use sites the same way stateful lambdas (lambdas with captures) are.
  • R8 avoids verification slowdown on Android runtimes:
  • To eliminate performance issues on Android runtimes (Dalvik and ART), R8 (not D8) now introduces library stubs and outline calls to library methods for library classes and methods that might not exist at runtime. Doing so eliminates many verification issues and improves runtime performance. This feature is always enabled.
  • Support for JDK-11 APIs with Java 8+ API desugaring:
  • When using the coreLibraryDesugaring dependency there is now support for an implementation library based on JDK-11. See thedesugar_jdk_libs change log for more information.
  • Android Gradle plugin and Android Studio compatibility:
  • The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to building Android apps. The following table lists which version of the Android Gradle plugin is required for each version of Android Studio.

New in Android Studio 2022.1.1 Electric Eel Canary 9 (Aug 3, 2022)

  • 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:
  • Issue #238666871: Target SDK handling changes break robolectric tests
  • Issue #234820480: JdkImageInput should be less sensitive to inconsequential changes
  • Issue #179285976: Dynamic feature conflicts with `android.uniquePackageNames`
  • Lint:
  • Issue #233912817: Lint UnusedIds incorrectly fails when using ViewBinding as suggested by official docs
  • Android Gradle Plugin:
  • Issue #238666871: Target SDK handling changes break robolectric tests
  • Issue #237450413: ProcessLibraryManifest does not correctly handle deletions of library manifest files
  • Issue #237783279: AGP ignores jniLibs overrides from 7.3.0-alpha08
  • Issue #225314061: Allow running R8 out of process
  • Issue #232652218: Error syncing gradle
  • Issue #237408709: Accessing variant sources in onVariant makes standard android sources, such as buildconfig disappear
  • Issue #221895342: "Make Project" uses wrong version of Gradle
  • Issue #208150246: AGP 7.1-beta04 has a missing com.android.build.api.dsl.Lint API and/or misleading kdoc
  • Issue #239967984: Upgrade to json-simple:1.1.1
  • Issue #238642989: Electric Eel Canary 3+ can't run JVM project using a KMP library; Gradle CLI works
  • 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:
  • Issue #240118359: [LogcatV2] populate "level:" options earlier
  • Issue #236001066: Electric Eel c4: "Unable to save settings"
  • Project View:
  • Issue #129044665: Android Studio shows build.gradle twice when using symlink
  • Run:
  • Issue #239734809: Misleading exception message

New in Android Studio 2022.1.1 Electric Eel Canary 8 (Jul 7, 2022)

  • C++ Build:
  • Issue #235920472: Cannot find (fork) CMAKE after upgrading AGP from 4.1.3 to 4.2.0 / 7.2.1
  • Gradle Files Editor:
  • Issue #183650753: Warning on too low buildToolsVersion isn't accurate
  • Lint:
  • Issue #236262744: Android lint permission check flakily crashing

New in Android Studio 2022.1.1 Electric Eel Canary 7 (Jun 30, 2022)

  • Android Gradle Plugin:
  • Wrong file name in output file for transforming SingleArtifact.AAR
  • JdkImageInput should be less sensitive to inconsequential changes
  • Dynamic feature conflicts with `android.uniquePackageNames`
  • Lint:
  • Lint UnusedIds incorrectly fails when using ViewBinding as suggested by official docs

New in Android Studio 2022.1.1 Electric Eel Canary 6 (Jun 28, 2022)

  • Android Gradle Plugin:
  • Issue #233511980: Wrong file name in output file for transforming SingleArtifact.AAR
  • Issue #234820480: JdkImageInput should be less sensitive to inconsequential changes
  • Issue #179285976: Dynamic feature conflicts with `android.uniquePackageNames`
  • Lint:
  • Issue #233912817: Lint UnusedIds incorrectly fails when using ViewBinding as suggested by official docs

New in Android Studio 2021.3.1 Dolphin Beta 4 (Jun 22, 2022)

  • ART:
  • [R8 3.3.40] dex2oat speed-profile invocation appears to hang on Android 8 device
  • Android Gradle Plugin:
  • Lint crashing in Kotlin 1.7.0-RC2 build
  • Import/Sync:
  • Build problem with multiple product flavours in new version
  • Logcat:
  • 2GB used by 9000 DeviceImpl held by AndroidLogcatService
  • Updater:
  • IncompatibleClassChangeError with R8 - 3.3.28 (Android API < 25)
  • Gradle 7.2.0 causing APK build error com.android.tools.r8.CompilationFailedException

New in Android Studio 2021.3.1 Dolphin Beta 3 (Jun 14, 2022)

  • General fixes and features:
  • The following is list of general fixes in Android Studio Electric Eel Canary 2. 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:
  • Issue #231326529: processReleaseManifest: package found in source AndroidManifest.xml false negative
  • Issue #229979216: Make dokka-core as compile time dependency and load it at runtime
  • Issue #231326529: AGP 7.2.0-rc01 :buildSrc:generatePrecompiledScriptPluginAccessors - shadow/bundletool/com/android/prefs/AndroidLocation$AndroidLocationException
  • Compose Preview:
  • Issue #231326529: ComposePreviewRepresentations leak through message bus connections in FastPreviewManager
  • Updater:
  • Issue #232941844: Patcher on M1 does not work for EE c1 to EE c2

New in Android Studio 2021.2.1.15 (May 25, 2022)

  • Android App Bundles:
  • Issue #230361284: bundletool does not package baseline profiles correctly
  • Dexer (D8):
  • Issue #218298666: Art / Dalvik VMs prior to version 8 does not support the fix for JDK-8272564
  • IntelliJ:
  • Issue #225751091: File watcher failed to start on Ubuntu 20.04
  • Issue #206465485: MBP 15" 2018 Touch Bar menu is missed.
  • Run:
  • Issue #232134751: Devices option is not visible and unable to run the app even though app module is available.
  • Shrinker (R8):
  • Issue #228791247: Why does R8 doesn't backport default interface methods but D8 does?
  • Issue #218400336: CIRCULAR REFERENCE: com.android.tools.r8.internal.R10: Unexpected type in conversion to primitive: OBJECT

New in Android Studio 2021.2.1.14 (May 9, 2022)

  • Support for creating your app with Jetpack Compose:
  • Animation Preview supports animatedVisibility:
  • Android Studio Chipmunk supports the animatedVisibility API in Animation Preview. To use Animation preview with animatedVisibility, use Compose version 1.1.0 or higher. To learn more about Animation Preview, see Animations.
  • Support for deploying preview from Library Modules:
  • Previews allow you to view your UI within Android Studio without having to run your app on a physical device. In Android Studio Chipmunk, you can deploy a specific @Preview to an emulator or physical device from Library Modules. To learn more, see Deploy Preview.
  • Support for profiling your app:
  • Detect jank on Android 12 and higher:
  • For devices using Android 12 or higher, a captured trace is shown in the Janky frames track under the Display pane in the CPU Profiler.
  • Android Gradle plugin and Android Studio compatibility:
  • The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to building Android apps. The following table lists which version of the Android Gradle plugin is required for each version of Android Studio.

New in Android Studio 2021.1.1.23 (Apr 8, 2022)

  • This update includes fixes for the following issues:
  • Android Gradle plugin
  • Issue #223365583: Duplicate class issues reported by R8
  • Build Variants
  • Issue #158597249: versionNameSuffix no longer works if the variant's version name is set via the new onVariants API
  • Compose Preview
  • Performance and stability related bug fixes.
  • Solve freeze that occurred occasionally when using the Live Edit of Literals feature.
  • Network Inspector
  • Issue #219563755: New Network inspector crashes after Bumblebee update
  • Issue #220807361: I am constantly getting this error when the debugger is connected on the latest version of Android Studio.
  • Issue #219572925: TrackedHttpURLConnection.getHeaderField crashes with NullPointerException

New in Android Studio 2021.3.1 Dolphin Canary 7 (Mar 18, 2022)

  • New features:
  • For public SDKs or dependencies that have been marked as outdated by their authors, you will now get Lint warnings in build.gradle files to update these dependencies. This is because using outdated versions could prevent you from publishing to the Google Play Console in the future.
  • General fixes:
  • Android Gradle Plugin;
  • Issue #213907850: Add workers to R8
  • Issue #215256062: Add desugar methods to lint model
  • Import/Sync:
  • Issue #217593045: "Gradle build model" Load Issue on IDE
  • Lint:
  • Issue #220161119: Lint IconMissingDensityFolder message uses absolute path in lint-baseline.xml
  • Issue #222095229: Move VersionChecks into API package to open up visibility
  • Issue #221488045: Lint's NewApi checks don't handle `when` statements in Kotlin

New in Android Studio 2021.3.1 Dolphin Canary 6 (Mar 14, 2022)

  • New features:
  • New Logcat:
  • Logcat has been updated to make it easier to parse, query, and track logs. This represents the most significant update to the tool since its introduction, and we would appreciate early feedback to make sure we create the best experience for you.
  • New formatter:
  • Logcat now formats logs to make it easier to scan useful information, such as tags and messages, and identify different types of logs, such as warnings and errors.
  • Create multiple Logcat windows:
  • You can now create multiple tabs within Logcat, so that you can easily switch between different devices or queries. Right-clicking a tab allows you to rename it, and you can click and drag to rearrange the tabs.Additionally, to help you more easily compare between two sets of logs, you can now split the view within a tab by right-clicking in the log view and selecting either Split Right or Split Down. To close a split, right-click and select Close. Each split allows you to set its own device connection, view options, and query.
  • Switch between view presets:
  • Logcat now allows you to quickly switch between different view modes—Standard, Compact, and Custom—by clicking . Each view mode provides a different default setting for showing you more or less information, such as timestamps, tags, and process IDs (PIDs). You can also customize each of these default view modes, as well as a custom view mode, by selecting Modify View.
  • New key-value search:
  • In the previous version of Logcat, you had the option to either use string search (with support for regular expressions) or create a new filter by populating various fields using the Logcat UI. The first option made search more complex and the second option made sharing and setting up queries more difficult. We’ve now simplified the experience by introducing key-value searches right from the main query field.
  • This new query system provides accurate query results, without relying on regular expressions, as well as the ability to recall past queries from history, and share those queries with others. Additionally, you still have the option to use regular expressions and exclude logs based on key-values. Here are some examples of how to use the new query system, but you can also simply start typing in the query field to see suggestions:
  • PIDs for the local app project: package-mine
  • Specific values:
  • package:<my-package-ID>
  • tag:<my-tag>
  • level:[VERBOSE | INFO | ASSERT | DEBUG | WARN | ERROR]
  • Exclude a specific value by preceding the key with -:
  • tag:<exclude-this-tag>
  • Use the regular expressions with a given key by placing a ~ after the key:
  • tag~:<regular-expression-tag>
  • Combine with the exclude tag: -tag~:<exclude-this-regex-tag>
  • You can also see a history of queries by clicking in the query field and selecting them from the drop down. To favorite a query so that it stays at the top of the list across all your studio projects, click the at the end of the query field.
  • Track logs across app crashes/restarts:
  • The new Logcat now makes it easier to track logs from your app across app crashes and restarts, so that you don’t miss important logs across these events. When a Logcat notices that your app process has stopped and restarted you’ll see a message in the output—such as PROCESS ENDED and PROCESS STARTED—as shown below:
  • And, restarting Logcat preserves your session configuration, such as tab splits, filters, and view options, so that you can continue your session easily. We appreciate any feedback you might have with the new Logcat, which you can report here.

New in Android Studio 2021.2.1 Chipmunk Beta 4 (Mar 9, 2022)

  • General fixes and features:
  • Android Gradle Plugin:
  • Issue #207670704: AGP 7.2.0-alpha05 breaks builds that use the Navigation Safe Args plugin
  • Issue #204328120: Vague error for invalid values.xml file
  • Issue #218370114: "Java file outside of source root" when using manifest.srcFile
  • Issue #210484302: Android studio 2021.1.1 beta5 . Gradle sync fails with "Unable to load class 'com.android.build.api.extension.AndroidComponentsExtension'."
  • Issue #196226533: AGP should not use ProjectComponentIdentifier.projectPath without ProjectComponentIdentifier.build
  • Issue #203003899: AGP looks for ANDROID_SDK_ROOT, not ANDROID_HOME
  • Build Variants:
  • Issue #158597249: versionNameSuffix no longer works if variant's version name is set via the new onVariants API
  • Compose Editing:
  • Issue #153769933: Import Auto-completion does type completion instead
  • Emulator:
  • Issue #220022493: UnsatisfiedLinkError: Unable to find image_converter.dll
  • Lint:
  • Issue #219645755: @TargetApi annotations are enforced on callers
  • Issue #219091668: Android lint NewApi regression
  • Navigation:
  • Issue #213086135: SafeArgs 2.4.0-rc01 and AGP 7.1.0-rc01 incompatible
  • Issue #159542337: Safe Args used deprecated getApplicationIdTextResource with AGP 4.1+
  • Network Inspector:
  • Issue #217765670: Network Inspector in BumbleBee doesn't show the api response in readable format
  • Issue #219572925: TrackedHttpURLConnection.getHeaderField crashes with NullPointerException
  • Issue #220807361: I am constantly getting this error when the debugger is connected on the latest version of Android Studio.
  • Issue #219563755: New Network Inspector crashes after Bumblebee update
  • New Code/Templates:
  • Issue #117641634: Bug of error message: Argument for @NotNull parameter 'text2' of com/intellij/diff/comparison/ComparisonManagerImpl.isEquals must not be null

New in Android Studio 2021.3.1 Dolphin Canary 3 (Feb 14, 2022)

  • Android Gradle Plugin:
  • Eempty dirs from local sources and runtime classpath are considered for Java resources
  • lateinit property projectProvider has not been initialized
  • AAB (resources.pb) intermittently bloated with comments from attrs.xml?
  • AGP ignores package name set in androidTest/AndroidManifest.xml
  • Assistant Window:
  • Change "Assistant" tool window title to include a colon
  • Compose Preview:
  • Empty Compose Preview Panel when Composable accesses Build.VERSION.SDK_INT
  • Layout Editor:
  • Absolute positions not removed for referenced views
  • Studio freezes on build.
  • Misc.xml contains local path
  • In the Activity Design editor, mouse wheel scrolling is smaller than expected
  • Bug: showing RadioButton in items of RecyclerView, it puts text to them even though they weren't set
  • Bug: no preview for customized Preferences
  • Confusing warning on Preference's entryValues
  • Lint:
  • TypographyQuotes lint check raises issue for quotes used by html tag attributes
  • Inconsistency between Lint and AGP suggestions on how to package native libs
  • AndroidLintAnalysisTask IllegalArgumentException warning because unsupported class files in META-INF
  • Memory:
  • Symbolication is broken for Memory Profiler
  • Navigation Editor:
  • Navigating to safearg shows navigation editor but not the arg
  • Resource Manager:
  • Cannot create icons
  • Testing:
  • AGP 7.2.0-alpha06, espresso tests, colon in produced artifact name

New in Android Studio 2021.3.1 Dolphin Canary 1 (Jan 31, 2022)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Android Gradle Plugin 7.1.0-rc01 fails to perform ASM bytecode transformation during unit tests
  • Android Gradle Plugin: Fix compile dependency leak by ConstrainHandler.
  • SigningConfig for MergedFlavor (buildType+flavor) on Gradle 7.x
  • Some new DSL blocks can't be used from Groovy DSL in Android Gradle Plugin 7.0.0
  • Issue #201080958
  • AGP 7.1 new publishing API: created javadoc jar does not get signed
  • Code Editor:
  • Bug in Android Studio Live Templates - the className() expression is not resolving the class name
  • Import/Sync:
  • Log spam: "INFO - testKnownPluginVersionProvider - 'gradle' plugin missing from the offline Maven repo, will use default 7.2.0-alpha05 "
  • Show JDK versions and file locations in menu When Gradle jdk location is not set.
  • Running Tests:
  • Unable to run AndroidTest from the gutter menu while non-Android run configuration is selected
  • Shrinker (R8):
  • Virtual class merging issue on jar from b/211811489
  • [R8 3.2.24] NPE in MemberRebindingAnalysis:
  • Sealed classes are not supported
  • R8 renames string literals
  • Broken Kotlin compilation with inline fun + default args + crossinline
  • Bug: getting error of "Compilation of classes...requires its nest mates ...(unavailable) to be on program or class path"

New in Android Studio 2021.2.1 Chipmunk Canary 7 (Jan 10, 2022)

  • The bug fixes included in this update:
  • App Development:
  • Issue #201177846 - Lint warningsAsErrors not escalating warning to error
  • Kotlin Plugin:
  • Issue #74514347 - The class Application is never used warning
  • Lint:
  • Issue #210507429 - Linter incorrectly asserts `android.content.ContextWrapper#checkCallingPermission` should take in PackageManager.PERMISSION_GRANTED or PackageManager.PERMISSION_DENIED
  • Issue #109655630 - Possible weak checking in AuthLeakChecker linter code
  • Issue #208842981 - Allow spaces in method names via backticks
  • Issue #206454502 - UnknownNullness check shouldn't trigger on overrides of un-annotated platform APIs
  • Release Bundle/APKs:
  • Issue #205165814 - "Remember password" checkbox from "Generate signed Bundle or APK" window does not remember "Key store password"
  • Running Tests:
  • Issue #205094187 - Cannot run instrumented tests from a directory scope

New in Android Studio 2021.1.1 Bumblebee RC 1 (Jan 4, 2022)

  • Fixed Issues:
  • Release Bundle/APKs:
  • "Remember password" checkbox from "Generate signed Bundle or APK" window does not remember "Key store password"
  • Shrinker (R8):
  • PC based mapping is incorrect when jumbo string processing
  • Android Gradle Plugin 7.0.2 crashes app on Android 4 and 5 devices with Verifier rejected class due to bad method

New in Android Studio 2021.2.1 Chipmunk Canary 6 (Dec 16, 2021)

  • Fixed Issues:
  • AVD Manager:
  • The "Localized image" alert doesn't wrap
  • Android Game Development Extension:
  • Stop using Embedded JDK in favor of user-installed JDK
  • Android Gradle Plugin:
  • Issue #203990046 Failed to install the following Android SDK packages as some licenses have not been accepted.
  • Issue #202449978 Clean up / remove ProjectInfo
  • Issue #139438142 Support java-test-fixtures plugin
  • Unable to run Gradle Managed Device tests on multiple devices at a time
  • Unable to Build the Project with API 32.
  • Move Managed Device DSL into its own segment of TestOptions.
  • Prefix product flavor attributes to avoid confusion and collisions
  • Provide AGP API Definition
  • Issue #200002454 Evaluate usages of @CacheableTask
  • Issue #199763362 Disable caching of BundleLibraryClassesJar using @DoNotCacheByDefault
  • Update AGP buildbenchmarks to use Kotlin 1.5
  • Issue #205856789 Can't build after updating to AGP 7.2.0-alpha04
  • Issue #195860510 AGP 7.0.0 does not create unit test jacoco exec files correctly with testCoverageEnabled true
  • Compose update broke postsubmit benchmarks
  • Issue #190357145 Invalid application ID in build output listing files when deploying via bundle
  • Issue #205968564 ComponentArtifactIdentifier changed by artifact transforms, causing incorrect androidTest runtime classpath
  • Issue #201263841 Play Asset Delivery: bundle does not include all asset packs
  • Issue #201801603 ComponentBuilder.enabled should be .enable
  • Issue #206655905 AGP offers META-INF classes to bytecode processors
  • Issue #204421586 Jetifier check fails in Chipmunk Canary 3
  • Update gradle version to 7.3
  • Android Studio:
  • Studio picks the wrong SDK when using extensions
  • Reduce the number of default Wear OS device configurations in the AVD creation flow.
  • MlLightClassTest methods fail after IDEA 211.7442.40 update
  • App Development:
  • Issue #206207283 StaticFieldLeak should not report usage of hilt annotated @ApplicationContext
  • Apply Changes:
  • Support --user flag to install on a specific user
  • Assistant Window:
  • Issue #190633727 UI for Digital Asset Links file is not clear
  • Background Task Inspector:
  • Show full content of column on mouse hover
  • [2021.1.1 Beta 4] Show in graph is enabled and when it's clicked blank UI is shown
  • Toolbar show warnings for disabled local UI context
  • Add links between workers and their related jobs
  • Build Output:
  • [BA - Check Jetifier] Instead of removing the enableJetifier flag set it to false so remaining comments above that line are not confusing
  • [BA] [UX String Improvement] Update String to give priority to action, and bold dependencies count
  • [BA] Accessibility: When using VoiceOver on Mac I was not able to bring focus to the action links to remove "enableJetifier"
  • [Check Jetifier] For multiple usage, running check after fixing one dependency still shows fixed dependencies in finder window
  • CM Canary 5: Jetifier warning left over from previous check after build
  • C++ Build:
  • Enable clangd on Android Studio dev build from IJ IDEA
  • Issue #204369569
  • Clangd integration broken in chipmunk canary 3
  • CPU:
  • Startup cpu profiling is not recording correct selected option for cpu recording
  • Poor contrast in Darcula when Vsync is turned off
  • The details panel is missing the graph for actual vs expected
  • Change string in details panel from "Jank" to "Frame"
  • Nit: Jank Frame tab has a collapsable arrow that always has a dark background?
  • Selecting a frame should autoscroll to start of that frame
  • Right click CPU capture on L2 timeline shouldn't go to capture stage
  • Remove reorder icon from the last swimlane
  • Zoom to selection button doesn't work
  • Frame lifecycle tracks are duplicated for different frames
  • Remove timestamp details from analysis pane
  • Change “Expected deadline” -> “Deadline”
  • Compose Editing:
  • Issue #190934619 BridgeContext.getSystemService() violates contract by throwing rather than returning null for unrecognized services
  • Compose Preview:
  • Issue with Pan Screen in Compose preview
  • ModuleClassLoader retaining PSI in ParametrizedPreviewTest.testLoremIpsumInstance
  • [Compose animation preview] "Tab" traversal should work in Animation preview (A11y)
  • [Compose animation preview]IDE fatal exception on refreshing on preview
  • Changing combobox value from 'Exit' to 'Enter' not refreshing animation
  • NPE while initializing the preview
  • Core IDE:
  • Reuse Intellij Coroutine Debugger in Android Studio
  • Core IDE (read-only):
  • [Wear Pairing Assistant] Clicking "Pair" on an already paired watch, doesn't warn user that it can only be paired with one device
  • Databinding:
  • Issue #150431762 Databinding caused the java.lang.StackOverflowError
  • Design Tools:
  • compose-ide-plugin is having flaky test failures
  • resourcemanager.rendering.SlowResourcePreviewManager.getIcon ui layout/generation is recursive and can overflow the stack
  • [Android Studio Chipmunk | 2021.2.1 Canary 5] Default vector icon color is showing white instead of black color
  • ModuleClassLoader unable to locate some java classes
  • Device File Explorer:
  • Issue #202931544 Files are deleted unexpectedly upon closing
  • Device Manager:
  • Make Details panel resizeable
  • Mock WearPairingManager in unit tests
  • PhysicalDevicePanelTest fails sporadically on Windows
  • Add pairing icon for connected, not connected states
  • [Resizable emulator] Remove S as selectable system image from AVD creation
  • [Wear pairing assistant] Open embedded emulator tab for virtual phone device
  • [Wear Pairing Assistant] Connecting devices step inaccurate
  • [Wear Pairing Assistant] Pairing Assistant Didn't Realize Devices were paired
  • TimeoutException in AsyncDetailsBuilderTest
  • Editing:
  • MigrateToAppCompat[Gradle]Test methods fail sporadically after IDEA 193.4697.15 merge
  • Embedded Emulator:
  • Exception report: com.android.diagnostic.LoggerErrorMessage at com.android.tools.idea.emulator.EmulatorView$ScreenshotReceiver.onNext-1b7313ae
  • Some times getting RejectedExectionException IDE error while closing emulator
  • There is a width alignment line within the emulator window that takes unnecessary space .
  • Getting IllegalStateException IDE error at emulator first launch
  • Emulator:
  • [Embedded Emulator] Resizable menu missing selected device
  • Import/Sync:
  • V2 assumes projects do always have a variant
  • Move gradle sync KTS tests to a separate class or package
  • Symbols are not resolving when we Undo Migrate To Non-Transitive R Classes
  • [DBP] Expose DBP data (properties file + refresh task) via V2 Model
  • Exception when configuring JDK table
  • Issue #206947890 Error syncing with gradle in Chipmunk Canary 5
  • Issue #205156965 Incorrect error highlight accessing kotlin internal field from unit test
  • Syncing AGP 7.2.0-alpha04 and IDE Canary 5 fails w/o offering upgrade
  • Sync does not populate LintOptions.severityOverrides
  • Issue #206666447 Sync failed with Unsupported method: LintOptions.getBaseline()
  • Issue #207389479 "Unresolved reference" for classes generated in a kotlin-only module
  • Issue #205744568 Gradle shows "sync failed: reason unknown" in a case if app target sdk is missing
  • IntelliJ:
  • IDE error (java.lang.IndexOutOfBoundsException) has occurred while selecting 'Set Bookmark' in the MainActivity
  • Jetpack Compose:
  • Issue #204502651 Auto fix for @Preview is wrong
  • Layout Editor:
  • [Compose-CL] Add autocomplete support for the ConstraintLayout Json syntax
  • [lint] use "notificationInfo" icon for tips
  • [Preview Picker] Add tracking, considering device classes
  • Vector icons are not loading for the very first time in vector select icon window
  • [New DeviceDropdown] nit: why are the title names / sections different across tools?
  • SourceCodeEditorProviderTest.testStateSerialization fails sporadically
  • MultiRepresentationPreviewTest.testMultipleProviders_conditionallyAccepting fails sporadically
  • MultiRepresentationPreviewTest.testPreviewRepresentationShortcutsRegistered fails sporadically
  • Remove wrench icon on top of AVD preview
  • project leak in PreviewProviderTest.testRenderTaskTimeOutReturnsANullDragImage
  • IDE error (java.lang.IllegalArgumentException) has observed in drawable layout editor
  • SingleWidgetView setting top margin is broken
  • IDE error (java.lang.ClassCastException) has observed while scrolling widget's attributes panel by using mouse
  • Issue #207329642 Zoom bar shrinks and is broken
  • avoid slow operation on EDT by DependencyManager.checkForRelevantDependencyChanges
  • Add resource Qualifier dropdown in Layout Editor
  • Layout Inspector:
  • [2021.1.1 Beta 4 ]Some times buttons in "Connect Without restarting activity" banner are displayed twice
  • intellij.android.layout-inspector.tests times out often
  • Fold line drawn incorrectly when device fully closed
  • “IllegalStateException: Timeout” in ReportingCountDownLatch
  • App crash while switching between live and non-live mode
  • Timeout in AppInspectionSnapshotSupportTest
  • The legacy layout inspector is no longer available
  • Lint:
  • IndexOutOfBoundsException in LintResourcePersistence.deserialize(LintResourcePersistence.kt:483)
  • Issue #205721223 Running lint flags a warning of mismatching kotlin library versions
  • Crash reported during lint analysis of vector_drawable.xml files
  • Issue #203452203 Unnecessary NewApi error at android.util.SparseArray#set
  • Issue #205738500 IntentReset false negative when chaining
  • Lint inspection registration code omits a dot in the FQ class name
  • Issue #205800560 new DiscouragedApi lint check is reporting duplicates and false positives
  • Issue #117235985 Incorrect PrivateResource lint warning when using com.android.support:design
  • ExportedReceiverDetector lint check shouldn't warn for elements
  • Issue #208346563 Broken links in lint documentation
  • Logcat:
  • Issue #195171994 Logcat is displaying duplicate entries
  • RegexFilter & NegatedRegexFilter Throw a PatternSyntaxException
  • Issue #206477811 Record video: Unexpected error while copying video recording from device: Remote object doesn't exist!
  • Memory:
  • Optimize the slowdown to the app due to allocation tracking
  • New Project Wizard
  • New Compose Project fails to build if SDK-31 is not installed
  • Offline Support:
  • Issue #183705445 Permission denied: no further information
  • Profilers:
  • Actually disable dragging for tracks with disabled `isDragEnabled`
  • Stand alone profiler is not working
  • Project Structure:
  • Extract Gradle related code into Gradle project system modules.
  • consider how to trigger sync after undo
  • Issue #206617192 PSD shows AGP versions incompatible with studio
  • PSD - Unordered `Gradle Versions` in dropdown
  • Project View:
  • Issue #197959708 Android Studio freezes when right clicking on Kotlin file in project view
  • Run:
  • Issue #183285087 AS 4.2 hangs on second attempted install to AVD
  • Stop watchFaces
  • Running Tests:
  • Issue #206858611 GMD tests with ATD system image with API level 30 fails due to missing system image
  • SDK Manager:
  • Remove StudioNetUtils when Intellij is merged
  • Shrinker (R8):
  • Studio integration test failing on roll
  • Can't roll to studio due to import of internal obfuscated R8 class
  • Templates:
  • undisposed GradleVersionCatalogDetector in ConfigureAndroidModuleStepTest
  • [Artwork Request] Send Feedback icon
  • Windows & Menus:
  • Issue #198311069 annoying icons in the lower right corner

New in Android Studio 2021.2.1 Chipmunk Canary 4 (Nov 11, 2021)

  • Fixed Issues:
  • AVD Manager:
  • AVDs created using avdmanager cli tool show up as not having playstore in AVD manager (even when they do)
  • Android Gradle Plugin:
  • Support jacoco and publishing from the same library variant
  • Update to use JaCoCo 0.8.7 by default
  • AGP should bundle `baseline.profm` file in addition to `baseline.prof`
  • Deployment:
  • Do not spam logs
  • Editing:
  • DeprecatedMethodException: '...FileEditor.getFile' is deprecated, you need to override it in '...ApkEditor'

New in Android Studio 2021.1.1 Bumblebee Beta 3 (Nov 9, 2021)

  • Fixed Issues:
  • AVD Manager:
  • AVDs created using avdmanager cli tool show up as not having playstore in AVD manager (even when they do)
  • Android Gradle Plugin:
  • Support jacoco and publishing from the same library variant missing AGP prefab task dependencies
  • AGP should bundle `baseline.profm` file in addition to `baseline.prof`
  • MergeResources task `rawLocalResourcesNoProcessRes` input is not marked as IgnoreEmptyDirectories.
  • Update to use JaCoCo 0.8.7 by default
  • Android Studio:
  • Lint UnusedResources incorrectly fails when using ViewBinding via property delegation
  • Code Editor:
  • Optimize AndroidMissingOnClickHandlerInspection
  • Deployment:
  • Do not spam logs
  • Editing:
  • DeprecatedMethodException: '...FileEditor.getFile' is deprecated, you need to override it in '...ApkEditor'
  • Import/Sync:
  • Variant selection is not propagated along androidTest dependencies
  • Lint:
  • SuppressLint not working for AppBundleLocalechanges
  • ViewBinding:
  • ViewBinding fails to bind when nonTransitiveRClass is enabled and @android ids are used in the xml

New in Android Studio 2021.1.1 Bumblebee Beta 2 (Oct 29, 2021)

  • Fixed Issues:
  • AVD Manager:
  • CLI output polluted with parsing logs
  • Android Gradle Plugin:
  • Setting a Provider for VariantOutput.versionCode can break with configuration cache
  • AGP 7.0.0-alpha10 regression: Failed to apply plugin 'com.android.internal.library' when databinding is enabled
  • lintDebug breaks configuration caching
  • Make sure `[consumer]proguardFiles` are supported in IDE models from v2
  • Relax resource name validation for overlayable
  • Android Studio:
  • Jetpack Compose 1.0 template update
  • Compose Editing:
  • Could not build studio due to old kotlin language version
  • Compose Preview:
  • Interactive Preview stops working once I drag scrollview
  • Databinding:
  • Databinding 7.0.0 uses depricated lifecycle-extensions
  • Design Tools:
  • Shape drawable stroke with width < 1.0 is only displayed in layout Design pane if preceded by a "0"
  • Layout Editor:
  • Compose preview font loading attempts to start threads (results in render error)
  • Layout Inspector:
  • App crashing due to LayoutInspector
  • Lint:
  • Lint TestMode.WHITESPACE test mode should not add spaces to label references in kotlin
  • lintVitalAnalyze throwing exception: "call to UsageTracker before initialization"
  • Manifests:
  • Red symbols in AndroidManifest.xml when using namespace DSL
  • New Code/Templates:
  • Compose project template doesn't include debug dependency on androidx.compose.ui:ui-test-manifest
  • New Project Wizard:
  • Move Gradle plugin definitions to root project build.gradle file
  • Resources:
  • Switch colors to something other than red for the popup documentation describing resources
  • SDK Manager:
  • I never got prompted to accept the license for the build tools by the first run wizard
  • Upgrade Assistant:
  • Migrate AndroidManifest.xml's package attribute to namespace DSL
  • Gradle plug-in update stalls every time

New in Android Studio 2021.2.1 Chipmunk Canary 3 (Oct 27, 2021)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Support jacoco and publishing from the same library variant:
  • missing AGP prefab task dependencies
  • MergeResources task `rawLocalResourcesNoProcessRes` input is not marked as IgnoreEmptyDirectories.
  • Android Studio:
  • Lint UnusedResources incorrectly fails when using ViewBinding via property delegation
  • Code Editor :
  • Optimize AndroidMissingOnClickHandlerInspection
  • Import/Sync:
  • Variant selection is not propagated along androidTest dependencies
  • Lint:
  • SuppressLint not working for AppBundleLocalechanges
  • ViewBinding:
  • ViewBinding fails to bind when nonTransitiveRClass is enabled and @android ids are used in the xml

New in Android Studio 2021.1.1.1 Bumblebee Canary 10 (Aug 26, 2021)

  • Fixed Issues:
  • Android Gradle Plugin:
  • Minor missing_rules.txt formatting issue.
  • Move deployment build output to intermediates folder
  • Lint:
  • NewApi check doesn't understand conditionals in `when` block
  • AGP 7.0.0 Lint HTML reports renders feedback urls wrong
  • False positive on SupportAnnotationUsage lint check
  • Lint does not call visitAnnotationUsage for overrides of methods within annotation scope
  • Motion Editor:
  • MotionLayout: I spend a lot of time to add constraints because I have over 10 to 20 items on the layout.
  • Navigation Editor:
  • Add "toSavedStateHandle"

New in Android Studio 2021.1.1 Bumblebee Canary 9 (Aug 24, 2021)

  • Improved resource shrinker:
  • Support for apps with dynamic featuresThe default implementation of the Android resource shrinker has been updated in Android Gradle Plugin 7.1.0-alpha09. The new implementation supports shrinking apps with dynamic features.
  • Experimental further app size reductions:
  • The new resource shrinker implementation can reduce the size of your shrunk app even more by modifying the resource table to remove unused value resources and references to unused file resources. The new resource shinker can delete unused file resources completely, reducing the size of your app more. This behavior is not enabled by default yet, but you can opt in to try it by adding the experimental option android.experimental.enableNewResourceShrinker.preciseShrinking=true to your project's gradle.properties file.Please report any issues you find with the new resource shrinker or the experimental flag. To help diagnose issues, or as a temporary workaround, you can switch back to the previous implementation by adding android.enableNewResourceShrinker=false to your project's gradle.properties. The new shrinker replaces unused file-based resources with slightly different minimal files than the previous resource shrinker, but this is not expected to have any runtime impact. The old implementation is scheduled to be removed in Android Gradle plugin 8.0.0.
  • General fixes and features:
  • Issue #195340099 AS Arctic Fox Error while starting native debug session on Mac M1, "Found broken LLDB configuration"

New in Android Studio 2020.3.1 (Aug 1, 2021)

  • New version numbering:
  • Updated version numbering for Android Studio:
  • We have changed the version numbering system for Android Studio to more closely align with IntelliJ IDEA, the IDE that Android Studio is based on.
  • In the previous numbering system, this release would have been numbered as Android Studio 4.3 or version 4.3.0.1. With the new numbering system, it is now Android Studio - Arctic Fox | 2020.3.1, or version 2020.3.1.
  • Going forward, here’s how the Android Studio version number is determined:
  • <Year of IntelliJ Version>.<IntelliJ major version>.<Studio major version>.<Studio minor/patch version>
  • The first two number groups represent the version of the IntellIj platform that a particular Android Studio release is based on. For this release, it's version 2020.3.
  • The third number group represents the Studio major version, starting at 1 and incrementing by one for every major release.
  • The fourth number group represents the Studio minor/patch version, starting at 1 and incrementing by one for every minor release.
  • We are also giving each major release a version name, incrementing from A to Z based on animal names. This release is named Arctic Fox.
  • Updated version numbering for Android Gradle plugin:
  • We have changed the version numbering for Android Gradle plugin (AGP) to more closely match the underlying Gradle build tool. Therefore, AGP 7.0 is the next release after AGP 4.2.
  • Android Gradle plugin 7.0.0:
  • The latest version of the Android Gradle plugin includes many updates. To learn more, read the full Android Gradle plugin release notes.
  • Unit tests now uses Gradle test runner:
  • To improve overall consistency of test executions, Android Studio now uses Gradle to run all unit tests by default. In many cases, this change will not affect your testing workflow in the IDE.
  • For example, when you click the Run command in the context menu (visible when you right-click on a test class) or its corresponding gutter action , Android Studio will use the Gradle run configuration by default to run unit tests.
  • However, Android Studio no longer recognizes existing Android JUnit run configurations, so you should migrate Android JUnit run configurations that you might save as project files to Gradle run configurations.
  • To create a Gradle test configuration, select the Gradle template when following the instructions in Create a new run/debug configuration. When you've created a new configuration, it will appear in the Edit Configurations dialog in the Gradle section.
  • If you want to inspect Android JUnit configurations that are no longer recognized, you can do one of two things:
  • Open manually saved configurations in a text editor. The locations of these files are specified by the user, but the files typically appear in <my-app>/.idea/runConfigurations/.
  • Look for temporary configurations in <my-app>/.idea/workspace.xml and look under the <component name="RunManager" ...> node.
  • New Background Task Inspector:
  • You can visualize, monitor, and debug your app's background workers using the new Background Task Inspector. To get started, deploy your app to a device running WorkManager library 2.5.0 or higher, and select View > Tool Windows > App Inspection from the menu bar. You can view more detailed information by clicking on a worker. For example, you can see the description of the worker, how it was executed, details of its worker chain, and the result of the execution. You can also view a visual representation of a worker chain by selecting a worker from the table and clicking Show Graph View from the toolbar. You can then select any worker in the chain to see its details, or stop it if it’s currently enqueued or running. To return to the table, click Show List View.
  • To help you investigate issues from workers that fail execution, you can stop a currently running or enqueued worker by selecting it from the table and clicking Cancel Selected Worker from the toolbar. You can also filter workers in the table by tags you’ve assigned to them using the All tags dropdown menu.
  • Export data from the Database Inspector:
  • You can easily export databases, tables, and query results from the Database Inspector to save, share, or recreate locally. When you open up an app project in Android Studio and inspect the app for that project in the Database Inspector, you can start exporting data in one of the following ways:
  • Select a database or table in the Databases panel and click Export to file near the top of the panel.
  • Right-click on a database or table in the Databases panel and select Export to file from the context menu.
  • When inspecting a table or query results in a tab, click Export to file above the table or query results.
  • After selecting an export action, you use the Export dialog to help you through the final steps, as shown below. Depending on whether you are trying to export a database, table, or query results, you have the option of exporting the data in one or more of the following formats: DB, SQL, or CSV.
  • Updated UI for recording in Memory Profiler:
  • We have consolidated the Memory Profiler user interface (UI) for different recording activities, such as capturing a heap dump and recording Java, Kotlin, and native memory allocations.
  • The Memory Profiler provides the following options:
  • Capture heap dump: View objects in your app that are using memory at a specific point in time.
  • Record native allocations: View how each C/C++ object was allocated over a period of time.
  • Record Java/Kotlin allocations: View how each Java/Kotlin object was allocated over a period of time.
  • Updates to Refresh Linked C++ Project:
  • We have moved files unrelated to configuration from the .cxx/ folder into the build/ folder. CMake C++ builds require a configuration phase that generates the Ninja project that's used to execute the compile and link steps. Projects generated by CMake are expensive to generate and are expected to survive across gradle clean. For this reason, they're stored in a folder called .cxx/, next to the build/ folder. Typically, Android Gradle plugin will notice configuration changes and automatically regenerate the Ninja project. However, not all cases can be detected. When this happens, the "Refresh Linked C++ Project" option can be used to manually regenerate the Ninja project.
  • New test matrix for multi-device testing:
  • Instrumentation tests can now run across multiple devices in parallel and can be investigated using a specialized instrumentation test results panel. Using this panel, you can determine if tests are failing due to API level or hardware properties. Testing your app across a wide variety of API levels and form factors is one of the best ways to ensure that all users have a great experience when using your app.
  • The new test results panel allows you to filter your test results by status, device, and API level. Additionally, you can sort each column by clicking the header. By clicking on an individual test, you can view logs and device information individually for each device.
  • StateFlow support in data binding:
  • For Kotlin apps that use coroutines, you can now use StateFlow objects as a data binding source to automatically notify the UI about changes in the data. Your data bindings will be lifecycle aware and will only be triggered when the UI is visible on the screen.
  • To use a StateFlow object with your binding class, you need to specify a lifecycle owner to define the scope of the StateFlow object, and in your layout, assign the properties and methods of your ViewModel component to the corresponding views using binding expressions.
  • Improved suggested import:
  • We’ve improved the number of libraries that are supported by the suggested import feature and update the index more frequently. Suggested import helps you quickly and easily import certain Google Maven artifacts into both your class and Gradle project. When Android Studio detects unresolved symbols from certain Google libraries, the IDE suggests importing the library into both the class and the project.
  • Support for configuration cache in Build Analyzer:
  • Build Analyzer now identifies when a project doesn't have configuration cache enabled, and offers it as an optimization. Build Analyzer runs a compatibility assessment to inform you if there are any issues with configuration cache in your project before it gets enabled.
  • Improved Upgrade Assistant for AGP:
  • The Upgrade Assistant for Android Gradle plugin now has a persistent tool window with the list of steps that will be completed. Additional information is also presented on the right side of the tool window. If needed, you can also choose a different version of AGP to upgrade to. Clicking on the Refresh button updates the corresponding update steps.
  • Refactoring for non-transitive R classes:
  • You can use non-transitive R classes with the Android Gradle plugin to build faster builds for applications with multiple modules. Doing so helps prevent resource duplication by ensuring that each module’s R class only contains references to its own resources, without pulling references from its dependencies. This leads to more up-to-date builds and the corresponding benefits of compilation avoidance.
  • You can access this feature by going to Refactor > Migrate to Non-transitive R Classes.
  • Support for Jetpack Compose tooling:
  • We now offer additional support for previewing and testing apps that use Jetpack Compose. For the best experience developing with Jetpack Compose, you should use the latest version of Android Studio Arctic Fox so that you can benefit from smart editor features, such as New Project templates and the ability to immediately preview your Compose UI.
  • Compose support in the Layout Inspector:
  • The Layout Inspector allows you to see rich detail about your app's layout running on your connected device. You can interact with your app and see live updates in the tool to quickly debug issues that might arise.
  • You can inspect layouts written with the new Android declarative UI framework, Jetpack Compose. Whether your app uses layouts fully written in Compose or layouts that use a hybrid of Compose and Views, the Layout Inspector helps you understand how your layouts are rendered on your running device.
  • Improved deploy dropdown:
  • The device dropdown now distinguishes between different kinds of errors within your chosen device configuration. Iconography and stylistic changes now differentiate between errors (device selections that result in a broken configuration) and warnings (device selections that may result in unexpected behavior but are still runnable).
  • In addition, Android Studio will now warn you if you attempt to launch your project to a device that has an error or a warning associated with it.
  • New Wear OS pairing assistant:
  • The new Wear OS pairing assistant guides developers step-by-step through pairing Wear OS emulators with physical or virtual phones directly in Android Studio. The assistant can help you get the right Wear OS Companion app installed on your phone and set up a connection between the two devices. You can get started by going to the device dropdown > Wear OS Emulator Pairing Assistant.
  • Responsive layout template:
  • Android Studio Arctic Fox now includes a new layout template that adapts to various display dimensions and app resizing, such as phones, foldables, tablets, and split screen modes. When creating a new project or module, select the Responsive Activity template to create a layout with components that dynamically resize.
  • Known issues for Arctic Fox:
  • This section describes current known issues in Android Studio Arctic Fox.
  • Patches not working on Windows for v3.6-v4.1
  • Patches on Windows platform for v3.6-v4.1 to Android Studio Arctic Fox stable may not work.

New in Android Studio 2021.1.1 Bumblebee Canary 3 (Jul 9, 2021)

  • SdkLibDataFactory not compatible with Gradle Configuation Cache
  • Com.android.tools.build:gradle:4.2.0 broke manifest placeholders in
  • Build fails after updating project to 4.2.
  • CopyDebugAndroidLintReports: NoSuchFileException: lint-results-debug.txt
  • Test fixtures with default res support (false) still have resvalue generated folders
  • Pass --client-id, --client-name, and --client-version to lint from AGP
  • Add "-parameters" javac option only if Room is present
  • Cannot run :test task anymore starting from AGP 7.0.0-beta03
  • AGP does not enable Live Literals for Library modules
  • [Gradle] `initWith` exists for copying build configs, but not for flavors.
  • Unresolved reference: setProguardFiles
  • Android.disableAutomaticComponentCreation should not be experimental
  • InitWith() is not available in Gradle Kotlin DSL
  • Alpha channel not reflected in Android Studio's gutter for Compose colors
  • Copy & Paste broken for build analyzer warnings tab
  • Project build fails on windows because of read-only git files.
  • Nullpointer in build with cmake ( prebuild openssl , building libgit2 )
  • GNUMAKE throws exception on arguments like "-mllvm -oXXXX"
  • Target_precompile_headers not working
  • Android Gradle Plugin 4.0: CMake argument starting from '-C' is not passed to cmake executable, rendering build broken
  • Line separator error when auto-generating JNI method
  • Invalid warning in gradle to upgrade to alpha version of work-runtime lib
  • False positive ShowToast linting warning with Snackbar
  • LiveLiterals causing a crash in a non-Compose module
  • Copying attributes copies a reference, not the value
  • Lint UnusedResources incorrectly fails when using ViewBinding via property delegation
  • Lint unable to find project exploded aar for :camera:camera-extensions-stub
  • Lint:TypographyQuotes false positive with accented text
  • Bug: quick-fix of version check doesn't do anything
  • Lint no longer picks up lint.baselines.continue system property when set from Gradle plugin
  • Outdated error messages related to partial Lint analysis
  • Android Studio 4.2 hangs on WrongConstant lint check
  • LintClient not receiving user.home
  • Lint: ShiftFlags reports false positive when using Kotlin
  • AGP 7 Duplicate ObsoleteLintCustomCheck issues
  • Android S intent-filter without android:exported lint should report issues with
  • StringIndexOutOfBoundsException when writing SARIF format for Lint
  • Running Lint with a SARIF report throws an exception for some SourceLockedOrientationActivity failures
  • Lint not detecting type error with StringDef when there are multiple string method parameters
  • AGP lint task fails when there's an indirect compileOnly module dependency
  • Android Studio stuck suggesting to update library to SNAPSHOT version after reverting to proper stable/beta version
  • [lint] MissingTranslation does not detect plurals
  • WrongViewCast Lint false positive when using FragmentContainerView and findFragmentByTag
  • Lint Integration
  • AGP 7.0.0 Alpha 14 Lint RAM Usage Unbounded
  • Dynamic-feature lint issues not reported when app's checkDependencies=true and there are library modules
  • New Project Wizard
  • Update generated Gradle file to use new plugin DSL
  • Bug: new projects still can't remove "jcenter" even though it's about to be removed, and also doesn't help what should be done
  • Project System
  • RenderScript target API problem in Android build tools r25
  • Resources
  • Merge resources fails on escaped string resource
  • Running Tests
  • Bumblebee 2021.1.1 Canary 2 doesn't show failed tests anymore
  • Shrinker (R8)
  • Shrinker removes used vector drawables with new agp 4.1.0
  • R8 doesn't remove compile-time (VISIBILITY_BUILD) annotations
  • View Binding
  • Connection to the ViewBinding falls off after random actions in its xml-file
  • ViewBinding
  • Type inference with multiple layout variants

New in Android Studio 4.2.2 (Jun 30, 2021)

  • General fixes:
  • This update includes fixes for the following public issues:
  • Android Gradle Plugin
  • AGP 4.2.0 produces test APK that is missing a class, perhaps due to mixed java/kotlin source set
  • BuildConfigField replacement warning prints the value, which could contain sensitive information
  • Lint
  • Lint crashes in PrivateApiDetector when using lint.do.not.reuse.uast.env
  • Shrinker (R8)
  • Desugar overrides final method spliterator in PriorityQueue
  • Tool Windows
  • Add an indicator with a link when the list of Gradle tasks is not populated

New in Android Studio 2021.1.1 Bumblebee Canary 1 (Jun 8, 2021)

  • General fixes and features:
  • This update includes fixes for the following issues:Android Gradle Plugin:
  • Issue#186886814: Unknown flag --class-dir: Use --help for usage information
  • Issue#186464705: Don't hard-code DefaultLintModelVariant.shrinkable
  • Issue#173735753: Support depending on app module install from a library
  • Issue#187339905: AGP 7.0.0 Alpha 15 throwing Unresolved reference: missingDimensionStrategy
  • Issue#187341964: Android Lint VectorDrawableCompat check warns incorrectly
  • Issue#187420313: buildConfigField replacement warning prints the value, which could contain sensitive information
  • Issue#187769343: Configuration Cache issue with ASM Transform
  • Issue#187448822: com.android.databinding:baseLibrary uses support legacy libraries
  • Build Tools:
  • Issue#186806269: lint.xml file is ignored in AGP 4.2.0-rc01
  • Build Variants:
  • Issue#184824343: Switching cached variants does not work correctly for Kotlin/Kapt
  • Issue#174046787: Build variant section is always empty (loading).
  • Issue#187406162: Composite build root projects are displayed as ":" in build variant selector tool window
  • Bundletool:
  • Issue#186225291: Release bundletool 1.6.0
  • Code Analysis:
  • Issue#175930197: Android lint shows false positives of the API level check for fields in an interface that became inherited
  • Compose Editing:
  • Issue#185962145: Code completion for Modifier class doesn't work at all
  • Data Binding:
  • Issue#184183388: Studio mistakenly flagging databinding XML attributes as "unknown"
  • Issue#187340555: Non-deterministic outputs in DataBinding tasks
  • Deployment:
  • Issue#183581075: Arctic Fox Canary 11 Won't launch emulator when hitting run
  • Google Cloud:
  • Issue#160510837: Text misalignment in user card in Android Studio
  • Gradle Files Editor:
  • Issue#79563959: SDK Assignment Property
  • Import/Sync:
  • Issue#151294238: Android Studio builds with "assemble" rather than ":app:assembleDebug"
  • Issue#187428282: Manifest index doesn't recognise manifests in generated folder
  • Issue#151294238: Android Studio builds with "assemble" rather than ":app:assembleDebug"
  • Issue#173376103: There is no way to search modules in the build variant selection tool window
  • Layout Editor:
  • Issue#177141136: Bugged System UI option
  • Issue#152898934: Android studio 4.0 zoom sensitivity
  • Lint:
  • Issue#186771656:Absolute paths are present in partial results files when LintOptions.absolutePaths is false
  • Issue#180408990: Potential issue with the RestrictedApi detector in the new lint integration
  • Issue#185811191: RestrictToDetector throws StringIndexOutOfBoundsException
  • Issue#181047988: Issues enabled via lintOptions.enable always have severity WARNING
  • Issue#180408027: Lint gives failure to analyze when there are only test classes
  • Issue#184290317: ExifInterfaceDetector Lint Check Refers to Obsolete Class
  • Issue#187437289: Lint MutatingSharedPrefs false positive
  • Issue#184095342: Lint log spam: "Incorrect detector reported disabled issue ExtraTranslation"
  • Lint Integration:
  • Issue#186772704: Move lint resources xml files to task output directory
  • Issue#186772704: Move lint resources xml files to task output directory
  • Prefab Integration:
  • Issue#183634734: C/C++: prefabError: Missing argument "PACKAGE_PATH".
  • Tool Windows:
  • Issue#187415389: Add an indicator with a link when the list of Gradle tasks is not populated
  • Translations Editor:
  • Issue#153587640: We're getting com.android.tools.idea.resources.base.BasicValueResourceItems out of the resource folder repositories
  • View Binding:
  • Issue#186306088: AndroidStudio ViewStub in ViewBinding was mistaken for an ViewStubProxy

New in Android Studio 2020.3.1 Arctic Fox Beta 1 (May 18, 2021)

  • Configuring the Build:
  • Kotlin script support is still in preview
  • In Android Gradle Plugin 7.0 betas, the DSL is now registered with the new interfaces e.g. (https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/CommonExtension). For groovy script users this has no effect as the implementation type is used irrespective, but for kotlin script users the implementation details will no longer be visible, and scripts that depended on them will no longer compile. Some commonly used items have been added back as deprecated, but not all.
  • Known Issues:
  • The developer preview of the newest Wear OS (API level 30) system image has the following known issues:
  • Switching watch faces via the Wear OS phone app is not available
  • On-watch Tile management is currently unavailable. In order to preview a Tile you have created in the emulator, you can either set the Tile in the Wear OS phone app or use the wear-tiles-renderer library to preview Tiles in an activity within your app (learn more).
  • Screen recording through the power menu is not working
  • Some UI elements are not localized
  • Some UI elements might not render correctly on non-round emulator configurations.

New in Android Studio 4.2.1 (May 13, 2021)

  • This update includes fixes for the following public issues:
  • Build Variants:
  • Project structure does not match after switching variants and reopening
  • Kotlin
  • Android Stud:io 4.2.0 generates projects with wrong Kotlin version: "1.5.0-release-764"
  • Project Structure:
  • Project Structure dialog in AndroidStudio is unable to display modules that aren't included as text in settings.gradle
  • Android Gradle Plugin:
  • AGP 4.2 Beta 5 breaks Wear unbundled apps

New in Android Studio 4.2 (May 5, 2021)

  • Android Studio 4.2 is a major release that includes a variety of new features and improvements.
  • Android Gradle plugin 4.2.0:
  • The latest version of the Android Gradle plugin includes many updates. To learn more, read the full Android Gradle plugin release notes.
  • Gradle compatibility and configuration changes:
  • When running in Android Studio, the Gradle build tool uses Studio's bundled JDK. In previous releases, JDK 8 was bundled with Studio. In 4.2, however, JDK 11 is now bundled instead. When using the new bundled JDK to run Gradle, this may result in some incompatibility or impact JVM performance due to changes to the garbage collector. These issues are described in the AGP release notes.
  • Database Inspector:
  • Query editor improvements:
  • The Database Inspector includes some improvements to help you write and execute your custom SQL statements. When you open the inspector and open a New query tab, you should notice a larger, resizable editor surface to author and format your queries, as shown below.
  • DB Inspector editor:
  • Additionally, we now provide a history of your previous queries. When you click on the Show query history Show query history button button, you should see a list of queries you previously ran against the currently selected database. Click a query in the list to see a preview of the full query in the editor and press Enter to copy it to the editor. Then, click Run to execute the statement.
  • Run command in query editor:
  • Offline mode:
  • In previous versions of Android Studio, disconnecting from an app process while using the Database Inspector resulted in closing the inspector and its data. In Android Studio 4.2, we've added the ability to keep inspecting your app's databases after a process disconnects, making it easier to debug your app after a crash.
  • When a disconnect occurs, the Database Inspector downloads your databases and then makes them available to you in offline mode. When offline, you can open tables and run queries.
  • Keep in mind, when you reconnect to a live app process, the Database Inspector returns to live mode and shows you only the data that is on the device. That is, data shown in offline mode doesn't persist when you reconnect to an app process. Because of this, the Database Inspector does not allow editing or running modification statements while in offline mode.
  • Upgrade Assistant for AGP:
  • A new Upgrade Assistant for Android Gradle plugin can help you update the AGP version for your project.
  • Android Gradle plugin Upgrade Assistant dialog
  • Built on top of the existing AGP upgrade functionality, this tool guides you through project-wide updates/refactorings and includes a preview of the updates to help prevent potential breaking changes before executing the AGP upgrade.
  • Preview of changes to be performed by Upgrade Assistant:
  • System Trace: Improved metrics for memory and graphics
  • In the CPU profiler, the System Trace feature now includes new metrics for analyzing app performance and includes the following:
  • Events Table. Lists all trace events in the currently selected thread.
  • BufferQueue. In the Display section, this new track shows the buffer count of the app's surface BufferQueue (0, 1, or 2) to help you understand the state of image buffers as they move between the Android graphics components.
  • System Trace Buffer Queue:
  • CPU Frequency. In the CPU cores section, this new track displays CPU frequency by core, indicating how hard each core is working.
  • System Trace CPU Frequency:
  • Process Memory (RSS). This new window shows the amount of physical memory currently in use by the app.
  • System Trace Process Memory (RSS):
  • For more details, see Inspect CPU activity with CPU Profiler.
  • New Layout Inspector refresh action:
  • Introduced in Android Studio 4.0, the Layout Inspector was designed for real-time inspection of your running app’s UI stack. However, you might not always want the Layout Inspector to immediately reflect what’s happening in your app, since you might want to inspect a snapshot of your app’s layout at a specific point in time or minimize the performance impact of live updates on your app.
  • Pause live updates and refresh the screen capture in the Layout Inspector.
  • To manually load a snapshot of UI data from your app, first disable the Live updates option. You can then click the Refresh button to take a new snapshot of the UI stack for inspection. The Layout Inspector now remembers your preference to keep Live updates enabled or disabled between sessions.
  • Support for Safe Args:
  • Safe Args is a Gradle plugin that generates simple object and builder classes for type-safe navigation and access to any associated arguments. Android Studio now includes richer support when working with Safe Args, as described below:
  • Autocompletions for Directions, Args, and the various builder classes
  • Support for both Java and Kotlin safe args plugins
  • Navigation from source to XML
  • R8 retrace now available in command-line tools
  • Available in version 4.0 of the command-line tools, R8 retrace is a standalone tool for obtaining the original stack trace from an obfuscated stack trace.
  • You can download this package with the SDK manager, which installs R8 retrace in android_sdk/cmdline-tools. Alternatively, you can download the standalone command-line tools package.
  • For usage information, see R8 retrace in the user guide.
  • Deploy to multiple devices:
  • To help streamline app testing across devices and API levels, you can now deploy your app to multiple devices or emulators simultaneously by following these steps:
  • Choose Select Multiple Devices in the target device dropdown menu (in the top-center of the IDE).
  • Target device dropdown
  • Select the target devices and click OK.
  • Modify device set dialog
  • Run your app.
  • Note: Running and viewing tests across multiple devices is an experimental feature. When running a test configuration across multiple devices, you might be prompted to enable this feature before you can proceed.
  • New removable setting for feature modules
  • Android Gradle plugin 4.2 uses bundletool 1.0.0, which introduces a behavior change for apps using feature modules: Any feature module specified as dist:install-time that's not explicitly marked as dist:removable will become non-removable by default. This new setting optimizes fusing of install-time modules with the base module, potentially improving app performance for some apps.
  • To keep feature modules removable, set dist:removable="true" on any module you want to uninstall.
  • For more information on this new setting, see the documentation for the dist:removable tag in the documentation for feature module manifest.
  • Apply Changes:
  • To help you be more productive as you iterate on your app, we've made the following enhancements to Apply Changes for devices running Android 11 or higher:
  • Support for additional code changes:
  • For devices running Android 11 or higher, you can now add static final primitive fields and then deploy those changes to your running app by clicking either Apply Code Changes or Apply Changes and Restart Activity .
  • You can now also add resources and then deploy those changes to your running app on Android 11 devices by clicking Apply Changes and Restart Activity .
  • Updated New Project and New Module wizards:
  • The New Project and New Module wizards have been updated to make it easier to browse, select a template, and input information about the new project or module.
  • The option to Import .JAR/.AAR Package from the New Module wizard has also been removed. To import a JAR or AAR into your project, use the Project Structure Dialog instead.
  • Kotlin 1.4.31
  • Android Studio 4.2 bundles Kotlin 1.4.31. Check out the Kotlin 1.4.0 changelog to review the major changes.
  • ANDROID_SDK_HOME environment variable deprecated
  • The ANDROID_SDK_HOME environment variable is deprecated and has been replaced with ANDROID_PREFS_ROOT. For more information, see Emulator Environment Variables.
  • Known Issues with Android Studio 4.2:
  • This section describes known issues that exist in Android Studio 4.2. For a complete list, go to the Known issues page.
  • Error when using different passwords for key and keystore
  • Starting with version 4.2, Android Studio now runs on JDK 11. This update causes an underlying behavior change related to signing keys.
  • When you navigate to Build > Generate Signed Bundle / APK and attempt to configure app signing for an app bundle or an APK, entering different passwords for the key and keystore may result in the following error:
  • Key was created with errors:
  • Warning: Different store and Key passwords not supported for PKCS12 Key stores
  • To work around this issue, enter the same password for both the key and keystore.
  • Android Studio doesn’t start after installing version 4.2:
  • Studio tries to import previous .vmoptions and sanitize them to work with the garbage collector used by JDK 11. If that process fails, the IDE may not start for certain users who set custom VM options in the .vmoptions file.
  • To work around this issue, we recommend commenting out custom options in .vmoptions (using the “#” character). The .vmoptions file can be found in the following locations

New in Android Studio 2020.3.1 Arctic Fox Canary 15 (Apr 30, 2021)

  • Android Gradle Plugin:
  • Issue#185043370: Include Gradle JVM version in bug reports
  • Issue#183138097: Lint doesn't analyze test sources
  • Issue#117343589: BaseVariant.registerJavaGeneratingTask method which allows for task configuration avoidance
  • Issue#183952598: Composite builds fail with Java lang level 9+
  • Issue#179488433: AGP should set new `org.gradle.jvm.environment` attribute
  • Issue#184833062: [Non-transitive R] IOSched app doesn't compile
  • Issue#183423660: AGP 7.0.0-alpha10 regression: Failed to apply plugin 'com.android.internal.library' when databinding is enabled
  • Issue#175816217: We need a Version interface in gradle-api
  • Issue#183295952: DSL element 'dexOptions' is obsolete' message is not clear
  • AVD Manager:
  • Issue#181721334: Last column gets very narrow when the window width is reduced
  • Build Output:
  • Issue#167701951: Bug: Android Studio build errors put links to wrong location
  • Issue#154532082: Build shows only first error
  • Build Variants:
  • Issue#184824343: Switching cached variants does not work correctly for Kotlin/Kapt
  • Issue#159670261: AS 4.1+ In BuildVariants window project name takes all visible space
  • Issue#184826517: Project structure does not match after switching variants and reopening
  • C++ Build:
  • Issue#184060944: Verbose NDK build not working
  • Database Inspector:
  • Issue#180570280: Running DB inspector significantly slows down some behavior
  • Databinding:
  • Issue#123260053: Data binding gets into StackOverflow for expressions with incorrect signature
  • Indexing:
  • Issue#185562147: 4.1 to 4.2 upgrade causes unresolved symbols when using default JDKs
  • Import/Sync:
  • Issue#168452472: Remove .single_variant sync snapshots
  • Issue#184929721: Build failure not easily linked with dependency which needs to be updated
  • Issue#175741233: Library Module breaks when referencing a library module folder from within app's build.gradle
  • Lint:
  • Issue#185057615: Lint does not work with Apple silicon on 7.0.0 builds
  • Issue#184760951: The lint detector com.android.tools.lint.checks.OverdrawDetector called context.getMainProject() during module analysis
  • Issue#67156629: ProGuard files are not checked by lint fromGradle
  • Issue#184875536: lint fails to detect target SDK checks in operator functions
  • Issue#183625575: Lint tasks doesn't output errors anymore
  • Issue#118866569: Release build error following instructions to exclude shared preferences file from full backup
  • Issue#185057616: UnusedResourceDetector fails on 7.0.0-alpha14
  • Logcat:
  • Issue#139772890: Remember last save location of recorded videos
  • Project Structure:
  • Issue#184660150: Project Structure dialog in AndroidStudio is unable to display modules that aren't included as text in settings.gradle
  • Issue#172359745: Project Structure > Suggestions stuck on Loading...
  • Updater:
  • Issue#184772161: "More actions" missing on fresh installation
  • Welcome Screen:
  • Issue#184772161: "More actions" missing on fresh installations

New in Android Studio 2020.3.1 Arctic Fox Canary 12 (Mar 26, 2021)

  • Android Gradle Plugin:
  • Issue #181055586: AGP 4.2 Beta 5 breaks Wear unbundled apps
  • Issue #182468430: [7.0.0-alpha09] <instrumentation> does not specify targetPackage when running unit tests
  • Issue #181208535: AAPT: error: <instrumentation> is missing attribute 'android:name'
  • Issue #172639034: Integrated jacoco report generation for unit tests
  • Issue #175718909: After upgrad NDK to 22, AGP-externalNativeBuild error
  • Issue #156824500: All generation of manifest in library modules
  • Issue #181142242: AGP 4.2.0-beta-xx crashed on build android app under GradleTestKit
  • Issue #126865761: Option to output main dex list when compiling with R8
  • Android Studio:
  • Issue #181885359: getValue not automatically imported
  • AVD Manager:
  • Issue #128470923: The widths of AVD Manager columns should automatically size to their content
  • Bundled Plugins:
  • Issue #174678824: Android Studio login can't bring my Google profile image
  • Code Editor:
  • Issue #181600226: Compose should suggest specific completion instances as part of the modifiers instead of just the interfaces
  • Compose Preview:
  • Issue #180913190: UX: If required, add link to let user kick off a build in the preview window
  • Issue #182832723: Compose Preview Error Tooltip just shows "E"
  • Import/Sync:
  • Issue #170950436: Do not build Gradle task list experimental options seems to be OFF by default

New in Android Studio 2020.3.1 Arctic Fox Canary 11 (Mar 23, 2021)

  • This update includes fixes for the following public issues:
  • Android Gradle Plugin:
  • Issue #182169925: Use special-case media dirs for testAdditionalOutputDir on API 29+
  • Issue #181770616: AGP throw ConcurrentModificationException when change SourceCompatibility to use java 11
  • Compose Preview:
  • Issue #181986045: Labels are not shown in propkeys section before the first run
  • Issue #181593654: Android studio unexpected split view for @Composable
  • Emulator:
  • Issue #172199752: Ugly scaling when using Emulator Tool Window
  • Gradle Files Editor:
  • Issue #159160295: Accepting option to enable inline classes support results in Gradle Sync Failure
  • Resources:
  • Issue #181770225: Non-transitive R classes: don't modify generated classes
  • Testing:
  • Issue #180881866: Logs' tab keeps refreshing for failed instrumented test

New in Android Studio 4.1.3 (Mar 19, 2021)

  • This version (4.1.3) sets the default upgrade channel as "Stable" for 4.1.x users.

New in Android Studio 2020.3.1 Arctic Fox Canary 10 (Mar 16, 2021)

  • Export data from the Database Inspector:
  • You can now easily export databases, tables, and query results from the Database Inspector to save, share, or recreate locally.
  • Missing class warnings in R8 shrinker:
  • Starting in AGP 7.0.0-alpha10, R8 will more precisely and consistently handle missing classes and the -dontwarn option. Therefore, you should start to evaluate the missing class warnings emitted by R8.
  • General Fixes:
  • This update includes fixes for the following public issues:
  • Lint:
  • Issue #180889192: Custom Lint check does not compile with 7.0.0-alpha07 (+alpha06,05,etc) due to unresolved imports
  • AVD Manager:
  • Issue #144443763: Enable device frame checkbox state is broken
  • Issue #151968449: avdmanager creates invalid AVD config
  • Issue #128470923: The widths of AVD Manager columns should automatically size to their content
  • SDK Manager:
  • Issue #161580306: sdkmanager.bat from command line tools (Windows) does not support paths with spaces
  • Code Editor:
  • Issue #133272518: ${applicationId} Error In AndroidManifest.xml, it's hint "Cannot resolve symbol 'applicationId'"
  • Issue #170489566: IDE, context highlighting stops.
  • Issue #156550033: Compose preview is rendered with an opaque background
  • Issue #161488011: Android Room Entity with AutoValue
  • Issue #37057404: Android Studio Plural Resource Code Folding for Format Arguments
  • Resources:
  • Issue #176694227: SVG-to-Vector converter breaks if <rect> element has parameter rx with percentage value
  • Issue #176760787: SVG-to-Vector converter does not apply transformations to the attribute *stroke width* of elements and paths
  • Issue #37086061: Tools-Namespace cannot be applied to other build type's resources
  • Translations Editor:
  • Issue #145653486: National flag of Myanmar displaying as old Burma flag
  • Issue #128106334: Bug: adding translation to the translation editor for a file that exist with qualifier will add yet another file instead of putting it into existing one
  • Issue #176344055: No column headers in Translations Editor
  • New Code/Templates:
  • Issue #181530512: [Sample Wizard] Style of vertical divider
  • Issue #62721914: Divider between list of samples and sample description should be draggable
  • Issue #37074303: Add "android:labelFor" in templates
  • Android Gradle Plugin:
  • Issue #166675916: Add public gradle API to enforce warnings as errors for R8
  • Issue #172895799: Premote GENERATE_MANIFEST_CLASS to softly enforced.
  • Network:
  • Issue #131854737: Freeze when clicking on large network call
  • Issue #170799243: Network profiler cause Android Studio to freeze when clicking on large network call
  • Database Inspector:
  • Issue #179012574: Database Inspector CREATE TABLE query puts columns in alphabetic order instead of actual order
  • Jetpack Compose:
  • Issue #181156420: java.lang.NoSuchMethodError: no non-static method Landroidx/compose/runtime/HotReloader$Companion;.saveStateAndDispose
  • Android Studio:
  • Issue #181575029: Completion breaks for @Composable methods
  • Issue #181203166: Add test dependencies to "Empty Compose" project template

New in Android Studio 4.2 Beta 6 (Mar 9, 2021)

  • This update includes fixes for the following public issues:
  • Emulator:
  • Issue #171136614: Emulator is janky and is dropping frames when launched in a tool window (embedded in studio) but works perfectly fine when launched as a separate window

New in Android Studio 2020.3.1 Arctic Fox Canary 9 (Mar 8, 2021)

  • General Fixes:
  • This update includes fixes for the following public issues:
  • Android Gradle Plugin:
  • Issue #179381701: Manifest-merger should verify that only one <uses-sdk> is present.
  • Android Studio:
  • Issue #180697776: Compose template variable casing
  • AVD Manager:
  • Issue #128106333: Can't finish emulator configuration if emulator was set an external sdcard file and it is deleted
  • Issue #159631139: Virtual devices are not sorted by default
  • Code Editor:
  • Issue #151239595: Room @Query resolver resolves the table to the wrong class
  • Issue #127890347: Import Order should match AOSP style : static at the top
  • Issue #141319429: Missing OnClick handler error reported in XML when using Fragments, due to tools:Context value
  • Issue #62692196: OnClick handler methods which are defined in super class aren't recognised in layout file which uses tools:context="subclass"
  • Issue #165896697: Lint: Incorrectly thinks FragmentContainerView android:name=".Fragment" class "is never used" when it is
  • Issue #156549140: Compose sample docs: add margins to preview image
  • Database Inspector:
  • Issue #178109346: Please make window drag handle larger
  • Issue #162568147: Please use progress indicator when waiting from response from room in db inspector
  • Issue #161718184: Database Inspector: Please make it possible to resize the columns !
  • Device File Explorer:
  • Issue #169764221: Device Explorer creates "AndroidStudio" folder in the home directory
  • Issue #144685944: Paths that include single quote show as empty
  • Emulator:
  • Issue #172199752: Ugly scaling when using Emulator Tool Window
  • Logcat:
  • Issue #147287647: Logcat view has extra "logcat" bar that seems to be useless
  • Memory:
  • Issue #176006855: Class names aren't shown properly in memory profiler, live tracking mode
  • Issue #155220549: Memory profiler - Arrange by package does not work
  • New Code/Templates:
  • Issue #37101507: Nav drawer template uses a deprecated API
  • Resources:
  • Issue #138908185: Bug: Portoguese flag for german (de) language translation value files
  • Issue #124064874: Section comments "region - endregion" doesn't work in proguard files
  • SDK Manager:
  • Issue #170751424: Improve error message when failing to run mksdcard.exe
  • Translations Editor:
  • Issue #124812179: impossible to access the panel where you can copy and paste translations

New in Android Studio 2020.3.1 Arctic Fox Canary 8 (Feb 25, 2021)

  • Android Gradle Plugin:
  • Issue #179062268: Default proguard rules get lost when running assembleRelease together with clean in an android library project with native code
  • Code Analysis:
  • Issue #171369798: Lint: False positive "Obsolete Gradle Dependency" for native version of `kotlinx-coroutines-core`
  • Code Editor:
  • Issue #174992109: [Compose] Add settings to disable custom formatter
  • Lint:
  • Issue #180078655: Default project has "does not specify a vendor; see IssueRegistry#vendor" warnings
  • Issue #180017974: Allow detectors to vary severity on a per occurrence basis, instead of just on a per issue basis
  • Issue #180018551: Allow third party lint check to supported renamed issues and deleted issues
  • Issue #178631052: Lint Fails with OutOfMemoryError on AGP 7.0.0-alpha05
  • Issue #179925911: Android Lint endless loop when trying to read databinding expression
  • Project Structure:
  • Issue #174827009: Adding App Variable breaks Gradle

New in Android Studio 4.2 Beta 5 (Feb 23, 2021)

  • General Fixes:
  • This update also includes fixes for the following public issues:
  • Android Gradle Plugin
  • Issue #172112073: Location Permission granted by default with AGP 4.1.0 when using installRelease or installDebug tasks
  • Issue #178015739: Cannot collect coverage data with Jacoco on regular unit test in an Android library
  • Issue #161727311: Android Studio 4.1 ignores resValue and buildConfigField
  • APK Debugging:
  • Issue #166750879: [Studio 4.2 Canary 9] Java Debugger crashes for API 29 and above
  • Issue #169230027: Cannot reopen lib.so after closing project
  • Issue #177976547: [NDK 21.4.7075529][AS 4.2 Beta 3] AssertionError when clicked on add debug symbols
  • Ddmlib:
  • Issue #171839322: UI freeze in AndroidDebugBridge.getDevices
  • Lint:
  • Issue #178805864: Filename sorting is not transitive with D8 desugared class names
  • Shrinker (R8):
  • Issue #176381203: Undefined value encountered during compilation.
  • Issue #175332495: [AGP4.2] NPE in R8
  • Issue #178045782: Getting an IllegalAcessException when using proguard-android.txt
  • Issue #177337814: Unrecognized Kotlin lambda ... does not implement any interfaces

New in Android Studio 2020.3.1 Arctic Fox Canary 7 (Feb 19, 2021)

  • General Fixes:
  • Lint:
  • Issue #178805864: Filename sorting is not transitive with D8 desugared class names
  • Issue #179088682: API check for interface casts does not look for surrounding instanceof checks
  • Data Binding:
  • Issue #178122250: Attributes in data binding custom adapters not being shown in autocomplete
  • New Project Wizard:
  • Issue #171990802: Change generated project to use `dependencyResolutionManagement` in settings file
  • Android Gradle Plugin:
  • Issue #175337498: AGP 4.1, Gradle 6.7: mergeDebugNativeLibs is not up to date and slows down Gradle builds.
  • Issue #178715706: Can't build project on Android Studio 2020.3.1.5 with AGP 7.0.0-alpha05
  • Issue #175108337: Allow overriding AAPT2 version in android projects
  • Issue #37797956: Switch to new models (v2).
  • Issue #178400721: Unsupported dynamic constant: $jacocoData
  • Issue #176819910: Duplicate key: (row=style, column=Theme_Transparent), values: [UNDEFINED style Theme_Transparent = 0x7f130217, UNDEFINED style Theme_Transparent = 0x7f1301e6].

New in Android Studio 2020.3.1 Arctic Fox Canary 6 (Feb 11, 2021)

  • Compose support in Layout Inspector:
  • Starting with Arctic Fox Canary 6, you can now inspect layouts written with the new Android declarative UI framework, Jetpack Compose. Whether your app uses layouts fully written in Compose or layouts that use a hybrid of Compose and Views, the Layout Inspector helps you understand how your layouts are rendered on your running device.
  • This feature requires that each module using the Compose UI declare the following dependencies: debugImplementation "androidx.compose.ui:ui-tooling:1.0.0-alpha11" debugImplementation "org.jetbrains.kotlin:kotlin-reflect:1.4.21"
  • To get started, deploy your app to a connected device and then open the Layout Inspector window by selecting View > Tool Windows > Layout Inspector.
  • Automated test snapshots:
  • When you inspect failed assertions after running instrumented tests, it's sometimes difficult or time consuming to reproduce that test failure again. However, reproducing those failures on your connected device is critical in helping you diagnose the issue, either by attaching a debugger or interacting with the app at the time of failure.
  • In Android Gradle plugin 7.0-alpha06 and higher, we're introducing automated test snapshots – a quicker way to reproduce test failures by leveraging Emulator snapshots. In other words, when your instrumented tests running on a connected Emulator encounter a Java or Kotlin assertion that fails, the device takes a snapshot at the time of failure. After your test run completes, you can then reload the snapshot on the same device in order to reproduce and investigate that failure.
  • General Fixes:Android Gradle Plugin:
  • Bug: choosing Lint quick-fix for conversion to WEBP, its dialog gets stuck, hard to even close it
  • Issue #174839536: ConnectedAndroidTest still run even there is no test files with Gradle Plugin 7.0.0-alpha02
  • Issue #176998942: Exception while trying to import/sync project in AS 4.2 b3 with Gradle source dependency. 4.1.1 passes.
  • Issue #175337498: AGP 4.1, Gradle 6.7: mergeDebugNativeLibs is not up to date and slows down Gradle builds.
  • Issue #169266007: issues related with android.defaultConfig.ndk.debugSymbolLevel
  • Issue #175718909: After upgrade NDK to 22, AGP-externalNativeBuild error
  • Android App Bundles:
  • Issue #171462060: [AGP 4.1.0] ./gradlew app:installDebugAndroidTest incorrectly tries to fetch APK from App Bundle
  • Android Studio:
  • Issue #171039472: Android Studio crashing on launch on Mac OS Big Sur
  • IntelliJ:
  • Issue #171563671: Pinch & Zoom no longer works
  • Lint:
  • Issue #170656529: [AGP 4.1] lint module being evaluated in improper context
  • Issue #175741231: Bug: choosing Lint quick-fix for conversion to WEBP, its dialog gets stuck, hard to even close it
  • Upgrade Assistant:
  • Issue #174793640: Arctic Fox Canary 2: Android Gradle Plugin Upgrade Assistant is upgrading kotlin gradle plugin to the wrong value

New in Android Studio 4.2 Beta 4 (Jan 29, 2021)

  • General Fixes:
  • Android App Bundles:
  • Issue #171462060: [AGP 4.1.0] ./gradlew app:installDebugAndroidTest incorrectly tries to fetch APK from App Bundle
  • Android Gradle Plugin:
  • Issue #174839536: ConnectedAndroidTest still run even there is no test files with Gradle Plugin 7.0.0-alpha02
  • Issue #176998942: Exception while trying to import/sync project in AS 4.2 b3 with Gradle source dependency. 4.1.1 passes.
  • Issue #169266007: issues related with android.defaultConfig.ndk.debugSymbolLevel
  • Issue #175718909: After upgrad NDK to 22, AGP-externalNativeBuild error
  • IntelliJ:
  • Issue #171563671: Pinch & Zoom not longer works
  • Lint:
  • Issue #170656529: [AGP 4.1] lint module being evaluated in improper context
  • Issue #175741231: Bug: choosing Lint quick-fix for conversion to WEBP, its dialog gets stuck, hard to even close it
  • Upgrade Assistant:
  • Issue #174793640: Arctic Fox Canary 2: Android Gradle Plugin Upgrade Assistant is upgrading kotlin gradle plugin to the wrong value

New in Android Studio 2020.3.1 Arctic Fox Canary 5 (Jan 28, 2021)

  • General Fixes:
  • This update includes fixes for the following issues:
  • Android App Bundles:
  • Issue #171462060: [AGP 4.1.0] ./gradlew app:installDebugAndroidTest incorrectly tries to fetch APK from App Bundle
  • Android Gradle Plugin:
  • Issue #175337498: AGP 4.1, Gradle 6.7: mergeDebugNativeLibs is not up to date and slows down Gradle builds.
  • Issue #177167009: AGP 7.0.0-alpha04 - Jar missing if there are no custom manifest permissions
  • Issue #37797956: Switch to new models (v2).
  • Issue #160138798: DexFileDependenciesTask should be cacheable
  • Issue #174839536: ConnectedAndroidTest still run even there is no test files with Gradle Plugin 7.0.0-alpha02
  • Issue #176998942: Exception while trying to import/sync project in AS 4.2 b3 with Gradle source dependency. 4.1.1 passes.
  • Issue #174493018: Reduce the number of //tools/base/build-system/integration-test/application bazel test targets
  • Issue #175718909: After upgrad NDK to 22, AGP-externalNativeBuild error
  • Issue #154948828: Configuration resolved early, with included build and configuration on demand
  • Issue #169885381: Make `kotlinCompilerVersion` optional (or remove it altogether)
  • Issue #177004260: Split IdeLibrary into Ide*Library and Ide*Dependency
  • Issue #154984238: Skip MergeNativeLibsTask when there are no native libraries
  • Issue #159238028: apkDirectory is final after upgrading to AGP v4.0
  • Android Studio:
  • Issue #155258590: Compose function calls are not highlighted in the color from the color scheme
  • C++ Build:
  • Issue #173049056: Native build tasks should suppress success messages
  • Issue #163379002: Gradle externalNativeBuild script has problem in recognizing last include statement in Android.mk file
  • Databinding:
  • Issue #176886060: Memory leak from sReferenceQueue
  • Gradle:
  • Issue #172361895: Add DSL to replace AndroidManifest.xml's package attribute
  • Layout Editor:
  • Issue #161154345: AttachedToolWindow$UpdatableActionButton buttons aren't visible on side panels in Design mode
  • Lint:
  • Issue #170656529: [AGP 4.1] lint module being evaluated in improper context
  • Issue #175741231: Bug: choosing Lint quick-fix for conversion to WEBP, its dialog gets stuck, hard to even close it
  • Issue #158777858: Lint error: package fragment is not found for module:<lintWithKotlin> is a module[ModuleDescriptorImpl@6dc0aaa0] file:KtFile: Crm.kt
  • Issue #159733104: Lint: NPE in KtLightClassForFacade.getLightClassData
  • Issue #177044619: AGP 4.2 lint.xml ignore regexp does not work as expected
  • Logcat:
  • Issue #175298140: Logcat Process Package Name Combo Should Be Searchable
  • Profilers:
  • Issue #174841028: Opening dmtrace.trace from Device File Explorer always fail (stuck on loading)
  • Test:
  • Issue #123987001: Test orchestrator coverage data is missing
  • Upgrade Assistant:
  • Issue #175496966: "Configuration with name 'testApi' not found." on AGP 7.0.0-alpha03
  • Issue #174787527: Opening a project with gradle 7.0.0-alpha01 plugin will no upgrade to 7.0.0-alpha02 automatically.
  • Issue #174793640: Arctic Fox Canary 2: Android Gradle Plugin Upgrade Assistant is upgrading kotlin gradle plugin to the wrong value
  • Issue #160258052: AS4.2C3 may not upgrade gradle classpath to 'com.android.tools.build:gradle:4.2.0-alpha03' from 'alpha02'.
  • Issue #153680188: com.android.tools.build:gradle:4.1.0-alpha04' does not upgrade to 'alpha05' gracefully when upgrading AS4.1C4 to AS4.1C5
  • Issue #155109633: com.android.tools.build:gradle:4.1.0-alpha07' does not upgrade to 'alpha08' gracefully when upgrading AS4.1C7 to AS4.1C8
  • View Binding:
  • Issue #173647034: Safe delete doesn't work

New in Android Studio 4.1.2 (Jan 20, 2021)

  • General fixes
  • SHRINKER:
  • App failed to run when upgraded to AGP 4.1
  • R8 Slowdown and Timeout Due to number of proguard rules
  • com.android.tools.r8.CompilationFailedException: Compilation failed to complete
  • Default method called using invoke-static instead of invoke-interface with AGP 4.1 (r8 2.1.62)
  • Public tracking bug for b/172895918 - R8 crashing with java.lang.NullPointerException
  • RUN:
  • Pressing the run button doesn't actually install the APK on the device, but Android studio reports operation succeeded
  • Studio builds old files
  • Application not killed after install
  • Everytime, when you click "Run", the changes in the code are not applied. I have to run two times to apply changes
  • Android Gradle Plugin:
  • Sync fails for unit tests in libraries when Android resources disabled
  • Running Tests:
  • JaCoCo plugin hangs for a long time
  • AS 4.1+ fail to run junit tests, compailing about junit version being too low
  • Emulator:
  • Embedded emulator on Windows never closes the emulator process

New in Android Studio 2020.3.1 Arctic Fox Canary 3 (Dec 15, 2020)

  • General Fixes:
  • This update includes fixes for the following issues:
  • C++ Debugger:
  • Issue #171300775: Display actionable error for missing dependencies: LLDBFrontend exited with code 127
  • Lint:
  • Issue #174480831: textOutput(“stderr”) now creating a file
  • Issue #174500754: lint is printing its command line and exit code
  • New Project Wizard:
  • Issue #174295122: Remove $kotlin_version declaration

New in Android Studio 4.2 Beta 2 (Dec 14, 2020)

  • General Fixes:
  • Lint:
  • Issue #174480831: textOutput(“stderr”) now creating a file
  • Shrinker (R8):
  • Issue #172999904: R8 Slowdown and Timeout Due to number of proguard rules
  • Issue #173184123: Public tracking bug for b/172895918 - R8 crashing with java.lang.NullPointerException
  • Issue #173598082: R8 build failure: Invalid descriptor char 'N'
  • Layout Editor:
  • Issue #146702651: layout_constraintDimensionRatio value error
  • Issue #173198421: Request to insert missing font sizes into textview
  • Navigation Editor:
  • Issue #172694913: AS 4.2 performs incorrect case mapping for camelCase graph IDs when referencing Directions classes
  • Code Editor:
  • Issue #173554093: JNI support is incorrectly handling inner class names
  • New Code/Templates:
  • Issue #163156198: Activity Wizard doesn't create files
  • Issue #172268020: Unable to create modules in Android Studio
  • Android Gradle Plugin:
  • Issue #173770818: Having tests only under `androidTest/kotlin` will not run any integration tests
  • Issue #172695848: Spurious error about android:extractNativeLibs
  • Issue #174576241: Kotlin DSL: packagingOptions.exclude broken
  • Emulator:
  • Issue #170657960: Embedded emulator on Windows never closes the emulator process

New in Android Studio 2020.3.1.2 Arctic Fox Canary 2 (Dec 4, 2020)

  • Android Studio now uses Gradle test runner:
  • To improve overall consistency of test executions, Android Studio now uses Gradle to run all unit tests by default.
  • In many cases, this change will not affect your testing workflow in the IDE. However, if you're using custom Android JUnit run configurations, you will need to migrate these configurations to Gradle run configurations.
  • General Fixes:
  • This update includes fixes for the following issues:
  • Android App Bundles:
  • Issue #111082605: Root binary files are packaged with base.apk instead of feature.apk
  • Android Gradle Plugin:
  • Issue #173770818: Having tests only under `androidTest/kotlin` will not run any integration tests
  • Code Editor:
  • Issue #173554093: JNI support is incorrectly handling inner class names
  • Import/Sync:
  • Issue #173111113: Drop ArtifactsByConfigurationModuleSetupStep
  • Jetpack Compose:
  • Issue #155624809: Implement "Extract string resource" in AS
  • Issue #169522329: Jetpack compose: provide intention action to un-surround a component
  • Layout Editor:
  • Issue #146702651: layout_constraintDimensionRatio value error
  • Layout Inspector:
  • Issue #157906217: Property value resolution stack missing
  • Lint:
  • Issue #172055763: Lint: OOM while analyzing Kotlin list of lambdas with receivers
  • Issue #173825213: lint.xml <ignore> paths not treated as relative to the lint.xml file
  • New Code/Templates:
  • Issue #163156198: Activity Wizard doesn't create files

New in Android Studio 4.2 Beta 1 (Dec 4, 2020)

  • Android Gradle Plugin:
  • Issue #171364505: Shrinking library with multidex enabled fails (after 4.0 -> 4.1 update)
  • Issue #172055303: Disabling android resources in libraries breaks unit tests
  • C++ Build:
  • Issue #171300770: NullPointerException in CmakeServerExternalNativeJsonGenerator when refreshing linked C++ projects
  • Lint:
  • Issue #170657532: AssertDetector warn false positive since AGP4.1
  • Release Bundle/APKs:
  • Issue #157584987: Android Gradle Plugin 3.6.x resulting larger .aab on debug build compared to AGP 3.5.x

New in Android Studio 4.1 (Oct 12, 2020)

  • New Database Inspector:
  • Inspect, query, and modify your databases in your running app using the new Database Inspector. To get started, deploy your app to a device running API Level 26 or higher, and select View > Tool Windows > Database Inspector from the menu bar.
  • Run the Android Emulator directly in Android Studio:
  • You can now run the Android Emulator directly in Android Studio. Use this feature to conserve screen real estate, to navigate quickly between the emulator and the editor window using hotkeys, and to organize your IDE and emulator workflow in a single application window.
  • Use TensorFlow Lite models:
  • ML Model Binding makes it easy for you to directly import .tflite model files and use them in your projects. Android Studio generates easy-to-use classes so you can run your model with less code and better type safety.
  • Supported models:
  • The current implementation of ML Model Binding supports image classification and style transfer models, provided they are enhanced with metadata. Over time, support will be expanded to other problem domains, like object detection, image segmentation, and text classification.
  • A wide range of pre-trained models with metadata are provided on TensorFlow Hub. You can also add metadata to a TensorFlow Lite model yourself, as is outlined in Adding metadata to TensorFlow Lite model.
  • View model metadata and usage:
  • To see the details for an imported model and get instructions on how to use it in your app, double-click the model file in your project to open the model viewer page, which shows the following:
  • Model: High-level description of the model
  • Tensors: Description of input and output tensors
  • Sample code: Example of how to interface with the model in your app
  • Known issues and workarounds:
  • Support for TensorFlow Lite models for problem domains other than image classification and style transfer is currently limited. Although import should work fine, some model inputs and/or outputs are represented by TensorBuffers rather than friendly types. For models without any metadata, all model inputs and outputs will be TensorBuffers.
  • Models with Input and Output data types different from DataType.UINT8 or DataType.FLOAT32 are not supported.
  • Native Memory Profiler:
  • The Android Studio Memory Profiler now includes a Native Memory Profiler for apps deployed to physical devices running Android 10 or later. With the Native Memory Profiler, you can record memory allocations and deallocations from native code and inspect cumulative statistics about native objects.
  • Known issues and workarounds:
  • The Native Memory Profiler in Android Studio 4.1 does not work for Android 11 devices. Support for profiling Android 11 devices is currently available in the 4.2 preview release
  • As of the initial 4.1 release, app startup profiling has been disabled. This option will be enabled in an upcoming release.
  • As a workaround, you can use the Perfetto standalone command-line profiler to capture startup profiles.
  • System Trace UI: Easier selection, new analysis tab, and more frame rendering data:
  • The System Trace UI in the Android Studio profiler includes the following improvements:
  • Box selection: In the Threads section, you can now drag your mouse to perform a box selection of a rectangular area, which you can zoom into by clicking the Zoom to Selection button on the top right (or use the M keyboard shortcut). When you drag and drop similar threads next to each other, you can select across multiple threads to inspect all of them at once. For example, you may want to perform analysis on multiple worker threads.
  • Summary tab: The new Summary tab in the Analysis panel displays:
  • Aggregate statistics for all occurrences of a specific event, such as an occurrence count and min/max duration.
  • Trace event statistics for the selected occurrence.
  • Data about thread state distribution.
  • Longest-running occurrences of the selected trace event.
  • To navigate to another occurrence, select another row from the table:
  • Display data: In the Display section, new timelines for SurfaceFlinger and VSYNC help you investigate rendering issues in your app's UI.
  • Standalone profilers now available:
  • With the new standalone profilers, it's now possible to profile your app without running the full Android Studio IDE.
  • For instructions on using the standalone profilers, see Run standalone profilers.
  • Dagger navigation support:
  • Android Studio makes it easier to navigate between your Dagger-related code by providing new gutter actions and extending support in the Find Usages window.
  • New gutter actions: For projects that use Dagger, the IDE provides gutter actions that help you navigate between your Dagger-annotated code. For example, clicking on the gutter action next to a method that consumes a given type navigates you to the provider of that type. Conversely, clicking on the gutter action navigates you to where a type is used as a dependency.
  • Find Usages node: When you invoke Find Usages on a provider of a given type, the Find window now includes a Dependency consumer(s) node that lists consumers of that type. Conversely, invoking this action on a consumer of a Dagger-injected dependency, the Find window shows you the provider of that dependency.
  • Material Design Components: Updated themes and styles in new project templates:
  • Android Studio templates in the Create New Project dialog now use Material Design Components (MDC) and conform to updated guidance for themes and styles by default. Updates include:
  • MDC: Projects depend on com.google.android.material:material in build.gradle. Base app themes use Theme.MaterialComponents.* parents and override updated MDC color and “on” attributes.
  • Color resources: Color resources in colors.xml use literal names (for example, purple_500 instead of colorPrimary).
  • Theme resources: Theme resources are in themes.xml (instead of styles.xml) and use Theme.<ApplicationName> names.
  • Dark theme: Base application themes use DayNight parents and are split between res/values and res/values-night.
  • Theme attributes: Color resources are referenced as theme attributes (for example, ?attr/colorPrimary) in layouts and styles to avoid hard-coded colors.
  • IntelliJ IDEA 2020.1:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2020.1 release, including a new Commit window that enables version control operations and a new Zen mode that can be toggled by selecting View > Appearance > Enter Distraction Free Mode.
  • Kotlin 1.3.72:
  • Android Studio 4.1 bundles Kotlin 1.3.72, which includes a number of fixes to improve Kotlin highlighting, inspections, and code completion. Check out the 1.3.72 Kotlin changelog for details.
  • Custom view preview:
  • When creating a custom view (for example, by extending the View or Button class), Android Studio now shows you a preview of your custom view. Use the dropdown menu in the toolbar to switch between multiple custom views, or click the buttons to wrap vertically or horizontally to the content.
  • Symbolication for native crash reports:
  • When a crash or ANR occurs in native code, the system produces a stack trace, which is a snapshot of the sequence of nested functions called in your program up to the moment it crashed. These snapshots can help you to identify and fix any problems in the source, but they must first be symbolicated to translate the machine addresses back into human-readable function names.
  • If your app or game is developed using native code, like C++, you can now upload debug symbols files to the Play Console for each version of your app. The Play Console uses these debug symbols files to symbolicate your app's stack traces, making it easier to analyze crashes and ANRs. To learn how to upload debug symbols files, see Native crash support.
  • Apply Changes:
  • To help you be more productive as you iterate on your app, we've made the following enhancements to Apply Changes for devices running Android 11 Developer Preview 3 or higher:
  • Faster deploy speeds:
  • We've invested heavily in optimizing your iteration speed by developing a method to deploy and persist changes on a device without installing the application. After an initial deploy, subsequent deploys to Android 11 devices using either Apply Code Changes or Apply Changes and Restart Activity are now significantly faster. To learn more about the difference between these two actions, see Apply Changes.
  • Support for additional code changes:
  • For devices running Android 11 Developer Preview 3 or higher, you can now add methods and then deploy those changes to your running app by clicking either Apply Code Changes or Apply Changes and Restart Activity

New in Android Studio 4.0.2 (Oct 6, 2020)

  • GENERAL FIXES:
  • This update includes fixes for the following public issues:
  • Dexer (D8):
  • Invalid Maven POM file for the desugar_jdk_libs_configuration artifact
  • Desugaring broken for subclasses of ConcurrentHashMap
  • coreLibraryDesugaringEnabled seems to break ConcurrentHashMap when using Gson and reflection
  • [library desugar] Desugar java.util.TimeZone.getTimeZone(ZoneId zoneId)
  • Layout Editor:
  • When I change a xml id attribute at Design mode, studio popup and ask changing another id. I click "No(local)" but studio find and change same name id in another files.
  • Lint:
  • AGP 4.0 false positive Instantiatable Lint check if Application extends java class
  • Can no longer specify layout_height and layout_width in a style
  • Motion Editor:
  • Motion Editor does not support the Release Candidates
  • Shrinker (R8):
  • Enum inlining uses the "wrong" name sometimes
  • Runtime errors when using R8 2.0+
  • Fatal Exception: java.lang.VerifyError
  • CompilationError during R8 phase when optimizations enabled
  • ConcurrentModificationException: TreeMap$PrivateEntryIterator.nextEntry

New in Android Studio 4.2 Canary 13 (Oct 1, 2020)

  • General Fixes (This update includes fixes for the following issues):
  • Android Gradle Plugin:
  • Issue #167966251: Use build service for project options
  • Build Variants:
  • Issue #156857164: Can't select a build variant (flavor)
  • Code Editor:
  • Issue #168784098: getValue operator extension is not automatically imported for mutableStateOf/state
  • Import/Sync:
  • Issue #151654753: After Gradle sync, running app causes another Gradle sync
  • Lint:
  • Issue #168794947: Lint's Parcelize check has false positives when using the new @Parcelize annotation
  • Upgrade Assistant:
  • Issue #169234685: Autosuggestion for API 29 is faulty
  • Additionally the issues below were addressed in this release but may not be necessarily fixed:
  • Dexer (D8):
  • Issue #169183194: D8 mergeProjectDexDebug fails on AS / AGP 4.2.0-alpha12 due to SafeArgs generated classes
  • Jetpack Compose:
  • Issue #169230467: Empty Composable does not render in the Studio preview
  • Run:
  • Issue #156855259: Different runtime behavior of started service via Studio "Run" button
  • Issue #168763389: Android studio doesn't install the app
  • Upgrade Assistant:
  • Issue #156100314: Consider handling Crashlytics versions in the upgrade assistant

New in Android Studio 4.2 Canary 12 (Sep 22, 2020)

  • Build:
  • Issue #135292528: Support setting JDK for Gradle Daemon started by Android Studio via env variable
  • Issue #140403764: NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN
  • Layout Editor:
  • Issue #140678037: Visualization tab disappears in 3.6 Canary 10
  • Lint:
  • Issue #133465551: Lint 26.5.0-beta02 DefaultLocale triggers on Kotlin's decapitalize method
  • Issue #140988425: Provide quick fix for RtlHardcoded
  • View Binding:
  • Issue #140882630: ViewBinding cannot determine Class due to uppercase package name

New in Android Studio 4.2 Canary 11 (Sep 17, 2020)

  • General Fixes:
  • This update includes fixes for the following issues:
  • Android Gradle Plugin
  • Issue #166582569: AGP compiles against Kotlin 1.4 and runs against 1.3.72
  • Code Editor:
  • Issue #167417473: Back action (Cmd+Option+ <-) no longer navigates back to last caret position
  • Issue #165340789: AS Dagger graph navigation doesn't work with Provider and Lazy
  • ViewBinding:
  • Issue #167583121: AGP 4.2a9: Error in dataBindingGenBaseClassesDebug fails build
  • Additionally the issues below were addressed in this release but may not be necessarily fixed:
  • Android Gradle Plugin
  • Issue #37797956: Switch to new models (v2).
  • Layout Editor:
  • Issue #158344314: Maintain size and theme selection of design preview rendering
  • Navigation Editor:
  • Issue #160395290: Preview of navigation file not working on Android Studio 4.1 and 4.2
  • Project Structure:
  • Issue #166774744: Unable to change JDK location - Android Studio 4.2 alpha08

New in Android Studio 4.1 RC 3 (Sep 15, 2020)

  • General Fixes:
  • This update includes fixes for the following issues:
  • Android Gradle Plugin:
  • Issue #164163031: Android Studio 4.1 RC1 is not installing test apk built using AGP 4.1 RC1 on Emulator
  • Issue #162244493: Can't reference test APK references in AGP 4.1
  • Issue #165343136: AGP 4.1-rc01: exception during AS sync
  • Issue #164844098: 4.1RC "Duplicate resources" build failure from drawable in -v24 directory
  • Issue #165535092: Multi-release classes from dirs should be ignored when dexing
  • Lint:
  • Issue #79995034: Lint unused id does not take in account constraint_referenced_ids
  • Running Tests:
  • Issue #162255811: Unit testing fails to find some classes/methods in Studio 4.1

New in Android Studio 4.2 Canary 10 (Sep 8, 2020)

  • General Fixes:
  • This update includes fixes for the following issues:
  • Android Gradle PluginL:
  • Issue #166582569: AGP compiles against Kotlin 1.4 and runs against 1.3.72
  • Issue #166468915: Can't sync with AGP 4.2.0-alpha08 and Kotlin build scripts
  • Jetpack (androidx):
  • Issue #37077964: Data binding doesn't handle accented characters in ids
  • Running Tests:
  • Issue #166291465: Test results panel in Android Studio 4.2 marks tests with failed assumptions as failed
  • Additionally the issues below were addressed in this release but may not be necessarily fixed:
  • Android Gradle Plugin
  • Issue #37797956: Switch to new models (v2).
  • Import/Sync:
  • Issue #166240410: Switching variants with composite build (includeBuild) is broken
  • Indexing:
  • Issue #167014937: Hang when window loses focus [Android Studio 4.2 canary 8]
  • Upgrade Assistant:
  • Issue #163364829: Bug: stable, beta and canary can't open Google's own sample project

New in Android Studio 4.2 Canary 9 (Sep 2, 2020)

  • Support for Safe Args:
  • Safe Args is a Gradle plugin that generates simple object and builder classes for type-safe navigation and access to any associated arguments. Android Studio 4.2 Canary 9 and higher includes special support when working with Safe Args, as described below:
  • Autocompletions for Directions, Args, and the various builder classes
  • Support for both Java and Kotlin safe args plugins
  • Navigation from source to XML
  • General Fixes:
  • This update includes fixes for the following issues:
  • Android Gradle Plugin:
  • Issue #64551265: Allow application of the Android Gradle plugins using Gradle's plugins block
  • Issue #164163031: Android Studio 4.1 RC1 is not installing test apk built using AGP 4.1 RC1 on Emulator
  • Issue #165833833: Break if ANDROID_SDK_HOME and ANDROID_PREFS_ROOT point to different location
  • Issue #166168605: AndroidLocation should use a logger object to output warnings.
  • Android Studio:
  • Issue #166161723: Invalid "Using ANDROID_SDK_HOME for the location" warning: env var not set
  • Import/Sync:
  • Issue #165017523: Android IntelliJ plugin: Gradle sync failed: Property found to be invalid, this should never happen!
  • Lint:
  • Issue #79995034: Lint unused id does not take in account constraint_referenced_ids
  • Issue #166113037: Line fails with StackOverflowError with core lib desugaring enabled
  • Issue #163512022: Allow custom lint jars to be specified via lint.xml
  • Issue #161410735: Applying LintFix in different file than warning fails
  • View Binding:
  • Issue #164794528: ViewBinding - <fragment> tag should be excluded from generated binding fields

New in Android Studio 4.1 RC2 (Aug 31, 2020)

  • Accessibility Scanner for Layout Editor:
  • Android Studio now integrates with the Android Accessibility Test Framework to help you find accessibility issues in your layouts. When using the Layout Editor, click on the Accessibility Scanner Accessibility Scanner button button to launch the scanner. The tool also offers suggested fixes for some common problems such as missing content descriptions.
  • Database Inspector: Offline mode:
  • In previous versions of Android Studio, disconnecting from an app process while using the Database Inspector resulted in closing the inspector and its data. In Android Studio 4.2 Canary 8 and higher, we've added the ability to keep inspecting your app's databases after a process disconnects, making it easier to debug your app after a crash.
  • When a disconnect occurs, the Database Inspector downloads your databases and then makes them available to you in offline mode. When offline, you can open tables and run queries.
  • Keep in mind, when you reconnect to a live app process, the Database Inspector returns to live mode and shows you only the data that is on the device. That is, data shown in offline mode doesn't persist when you reconnect to an app process. Because of this, the Database Inspector does not allow editing or running modification statements while in offline mode.
  • New removable setting for feature modules
  • Android Gradle plugin 4.2 uses bundletool 1.0.0, which introduces a behavior change for apps using feature modules: Any feature module specified as dist:install-time that's not explicitly marked as dist:removable will become non-removable by default. This new setting optimizes fusing of install-time modules with the base module, potentially improving app performance for some apps.
  • For more information on this new setting, see the documentation for the dist:removable tag in the documentation for feature module manifest.
  • This section provides a summary of the new features and changes in Android Studio 4.2.
  • New JVM resource compiler:
  • A new JVM resource compiler in Android Gradle plugin 4.2 tool replaces portions of the AAPT2 resource compiler, potentially improving build performance, especially on Windows machines.
  • Starting with the Canary 7 release, the new JVM resource compiler is enabled by default.
  • v3 and v4 signing now supported
  • Android Gradle Plugin 4.2 now supports APK v3 and v4 signing formats. To enable one or both of these formats in your build, add the following properties to your module-level build.gradle or build.gradle.kts file
  • Support for Jetpack Compose
  • Jetpack Compose toolkit provides a modern approach to building your app's UI. The toolkit also brings all of Kotlin's benefits, such as helping you to write concise and idiomatic code that's fully interoperable with Java.
  • For the best experience developing with Jetpack Compose, you should use the latest version of Android Studio 4.2. That's because when you use Android Studio to develop your app with Jetpack Compose, you can benefit from smart editor features, such as New Project templates and the ability to immediately preview your Compose UI.

New in Android Studio 4.2 Canary 8 (Aug 26, 2020)

  • This update includes fixes for the following issues:
  • Android Gradle Plugin:
  • Issue #162358733: make sure artifact collision do not conflict when replaced.
  • Issue #161826152: Gradle ran out of memory with 4GB max heap
  • Issue #160473003: Set Custom application id per variant bug
  • Issue #163039193: prepareLintJarForPublish destination file already exists
  • C++ Import/Sync:
  • Issue #160272302: NDK resolution outcome should not be printed
  • Code Analysis:
  • Issue #36991569: Lint warning for animation created but not .start()ed
  • Issue #149416536: Request: Lint Warning for AnimatorInflator.loadAnimator on API 23 and below
  • Data Binding:
  • Issue #161814391: Kotlin process annotation is busted starting in 4.2 canary 5
  • Issue #152153710: Referencing a generic LiveData works with AGP <= 3.5.0 but fails for later versions.
  • Deployment:
  • Issue #160192216: Bug: still can't build&run a new project on Android Studio
  • Dexer (D8):
  • Issue #160905482: Desugaring broken for subclasses of ConcurrentHashMap
  • Issue #160909126: coreLibraryDesugaringEnabled seems to break ConcurrentHashMap when using Gson and reflection
  • Editing:
  • Issue #153616200: Lint produces false warnings on ProGuard config files
  • Import/Sync:
  • Issue #161963743: IDE fails to stop Gradle daemon when using 6.6-rc-2
  • Layout Editor:
  • Issue #162588517: Some exceptions by custom views are not reported in the issue panel
  • Lint:
  • Issue #158128960: AGP 4.0 false positive Instantiatable Lint check if Application extends java class
  • Issue #67602844: Add Lint rule for unmodifiable SharedPreferences.getStringSet.
  • Issue #161362796: False positives in lint check NonConstantResourceIdDetector
  • Issue #159532832: Android Studio 4.2's lint error UI is confusing
  • Issue #159935420: [Lint feature request]: Errors for using newer patterns in SimpleDateFormat
  • Issue #118332958: Make whole file not translatable for pseudoLocalesEnabled true
  • Issue #139100146: Request: each time we use RemoteViews, don't let code be built till unless all views in the layout are supported
  • Navigation Editor:
  • Issue #160195388: Can't connect two destinations in navigation map
  • New Code/Templates:
  • Issue #162565516: New Module button not showing Dialog
  • Issue #162566204: underscore appends when caps is on while naming a new activity for the layout name
  • Project Structure:
  • Issue #162351817: AS treat whenObjectAdded clousere from android.productFlavors as flavour in Project Structure
  • Resources:
  • Issue #160865813: Required attributes are not automatically inserted for FQN view tag
  • Run:
  • Issue #162259273: Wrong Activity is use for launch when there is an alias
  • Shrinker (R8):
  • Issue #161403944: With AGP 4.1.0.beta01+, minifyEnabled = true leads to runtime crash due to java.lang.VerifyError
  • Issue #160901582: CompilationError during R8 phase when optimizations enabled
  • Additionally the issues below were addressed in this release but may not be necessarily fixed:
  • Android Gradle Plugin
  • Issue #162528480: AGP 4.2.0-alpha07 fails with java.lang.IllegalStateException: Failed to pseudo-localize string
  • Issue #161115878: GradlePlugin: Kotlin access to extra properties in ProductFlavor (it should be ExtensionAware)
  • Android Studio:
  • Issue #160271731: Set up integration test to make sure studio can open a compose file without issues
  • API:
  • Issue #69953968: Allow "packagingOptions" to be defined per build type/variant
  • Code Editor:
  • Issue #162196087: Frequent UI freezes
  • Import/Sync:
  • Issue #160909456: androidx compose project gradle sync breaks when upgrading to AS 4.2 Canary 4
  • Layout Inspector:
  • Issue #162448507: Add functionality to snapshot view hierarchy
  • Issue #162656657: Add refresh button
  • Lint:
  • Issue #163080422: lint.xml: synchronize with IDE, allow directory nesting, support configurations, etc
  • Issue #134987035: Use of LintOptions severity overrides breaks OTHER check validations
  • Issue #122769438: [ConstantLocale] Use of Locale.getDefault() within an enum value method is incorrectly flagged as being assigned to a static final constant
  • Issue #161584622: [lint] DiffUtilEquals false positive when type is exactly known
  • Memory:
  • Issue #161925082: The Instance View window is too small and cannot be made wider
  • Run:
  • Issue #151532381: [4.1-Canary2] Adding JVM agent flags breaks Run/Debug.

New in Android Studio 4.1 RC1 (Aug 11, 2020)

  • General Fixes:
  • Android Gradle Plugin:
  • Issue #161405989: Projects using ivy repositories cannot sync
  • Issue #161774530: LintChecks configuration resolved in non-lenient way
  • Deployment:
  • Issue #160192216: Bug: still can't build&run a new project on Android Studio
  • Lint:
  • Issue #161362796: False positives in lint check NonConstantResourceIdDetector

New in Android Studio 4.2 Canary 7 (Jul 31, 2020)

  • General Fixes:
  • Android Gradle Plugin:
  • Issue #161774530: LintChecks configuration resolved in non-lenient way
  • Issue #161405989: Projects using ivy repositories cannot sync
  • Issue #160714171: ProductFlavor collections/maps are now immutable in AGP 4.1.0
  • Issue #156837289: Data Binding errors are lost with kapt
  • Deployment:
  • Issue #160192216: Bug: still can't build&run a new project on Android Studio
  • Third Party Plugins:
  • Issue #152328198: Cannot upgrade Kotlin plugin via UI in Android Studio
  • Additionally the issue below was addressed in this release but may not necessarily be fixed:
  • Import/Sync:
  • Issue #158846149: Gradle OOM when syncing with AGP 4.1.0-beta01

New in Android Studio 4.1 Beta 5 (Jul 23, 2020)

  • Android Gradle Plugin:
  • Issue #155318103: Post-tasks variant API: Adding manifest placeholders is broken and breaks the build from AGP 3.x to AGP 4.1.0-alpha08
  • Issue #160714171: ProductFlavor collections/maps are now immutable in AGP 4.1.0
  • Issue #156837289: Data Binding errors are lost with kapt
  • Issue #159878591: False positive lint check: "non-constant resource ID should not be used as annotation attribute"
  • Layout Editor:
  • Issue #160102699: Navigation Drawer Menu XML preview not working/rendering
  • Layout Inspector:
  • Issue #155920880: Layout Inspector preview is jumping all over the place
  • Lint:
  • Issue #155088391: Can no longer specify layout_height and layout_width in a style

New in Android Studio 4.2 Canary 5 (Jul 21, 2020)

  • General Fixes:
  • Android Gradle Plugin:
  • Issue #160155450: BuildConfig not correctly honoring contract around quotations in String[]
  • Issue #158747359: ./gradlew connectedCheck fails with "com.android.ddmlib.InstallException: Unknown failure: Error: Unknown option: -g"
  • Issue #160330055: GradleAnalyticsEnvironment leaks ProviderFactory
  • Issue #157781501: Android gradle plugin fails to generate test coverage report with Gradle 6.4.1
  • Issue #159871229: Debug build causes duplicate definitions for desugared library classes
  • Issue #146163513: Configuration caching - connectedAndroidTest task state cannot be serialized
  • Issue #112699321: Support APK Signature Scheme v3
  • Issue #159685888: Merge java resource error message is not very useful
  • Issue #159434426: applicationIdSuffix cannot be empty
  • C++ Build:
  • Issue #159411906: externalNativeBuildClean runs preBuild also when using AGP 4.0.0
  • Database Inspector:
  • Issue #159993801: Double click on a NULL cell replaces NULL with empty string
  • Import/Sync:
  • Issue #156772381: Bug: IDE tells me to update a file that doesn't exist, and in illogical place, of gradle version
  • Jetpack (androidx):
  • Issue #159160314: Veracode scan raises couple of flaws.
  • Lint:
  • Issue #157781491: Lint using incorrect SDK version
  • New Code/Templates:
  • Issue #159364425: Can't create activity or fragment after updating Android Studio to 4.0
  • Issue #159832672: Bug: creating a new project with the wizard, it doesn't use the label for the toolbar title
  • Running Tests:
  • Issue #155650225: Show duration of a test in test results
  • View Binding:
  • Issue #159948398: View Binding classes are not resolved in Studio 4.0+ when two modules share the same layout name+app ID

New in Android Studio 4.2 Canary 4 (Jul 8, 2020)

  • General Fixes:
  • Android Gradle Plugin:
  • Issue #158201643: ExtractAnnotations should be compatible with configuration caching
  • Issue #37122098: Fix renderscriptNdk
  • Issue #155215177: Android gradle build: excluded java source files get compiled:
  • Code Analysis:
  • Issue #36978767: Add corresponding Intention for inspection "Toast created but not shown: did you forget to call show() "
  • Issue #62405955: (Feature request) Provide inspection for missing show() call on Snackbar
  • Database Inspector:
  • Issue #157461456: Database inspector disappear from toolbar
  • Issue #159575631: Simple (and complex) query using With clause doesn't work on the Database Inspector
  • Emulator:
  • Issue #158874142: Studio clipboard does not pick up clipboard selection from the emulator
  • Lint:
  • Issue #140626689: False positive for Service.onStartCommand return value WrongConstant check
  • Issue #119711823: "Invalid format string" lint rule doesn't report issue for a space in patern "% s"
  • Issue #136534380: "Buttons in button bars should be borderless" warning in a layout XML doesn't have an auto-fix option
  • Issue #77299597: "Combining ellipsize=middle and maxLines=1..." warning should not show when minSdkVersion is 23 or higher
  • Issue #74058591: "Unexpected failure during lint analysis" for invalid replace string quick fix masks actual problem
  • Issue #111035260: "enable 'LogConditional'" doesn't enable check
  • Issue #37053735: "Unexpected cast" Inspection should offer replacement suggestion
  • Issue #62810553: "android:host is missing" for uris with null host
  • Issue #158295165: Android Lint: Unknown Issue IDs should NOT break the build
  • Issue #158189490: NewApi lint check does not factor in usage of core library desugaring
  • Manifests:
  • Issue #158406168: Navigation component Illegal circular reference among navigation files when traversing navigation file references starting with navigationXmlId
  • New Code/Templates:
  • Issue #37105561: UX: Bad proportions in new layout resource window
  • Resources:
  • Issue #151480852: Bug: color preview in colors.xml file can show the wrong one, referenced by a different qualifier
  • SDK Manager:
  • Issue #159176695: cmdline-tools on mac packaged incorrectly
  • View Binding:
  • Issue #158065847: Autocomplete for binding classes in Android Studio 4.0 could be better

New in Android Studio 4.2 Canary 3 (Jun 30, 2020)

  • General Fixes:
  • Android Gradle Plugin:
  • Issue #158545411: Non-shrunk desugared library should only be packaged in the app APK
  • Issue #143862922: Warn when flatDir repository is used in the build
  • Issue #37069473: add hint text for TransformException DuplicateFileException 1.5 plugin
  • Issue #140747218: Improve error messages for exceptions thrown from Jetifier
  • Build Analyzer:
  • Issue #157673275: ProcessDataBinding is not working incrementally
  • C++ Import/Sync:
  • Issue #157901344: jniLibs and CMake IMPORTED targets - impossible to import native libraries!!!!!!
  • Emulator:
  • Issue #156865227: Zooming in on the emulator causes visual flicker
  • Import/Sync:
  • Issue #156112443: Invalid Gradle JDK configuration found
  • Lint:
  • Issue #140699627: Lint fail when using StringRes as field of an enum used as SafeArgs argument
  • Issue #159169803: RequiredSize check triggers on AndroidManifest.xml files in directories named "layout"
  • New Project Wizard:
  • Issue #130594965: New AdMob Activity crashes when running on device
  • Resources:
  • Issue #158212024: Classes generated by safeargs plugin are not seen by indexer

New in Android Studio 4.2 Canary 2 (Jun 18, 2020)

  • General Fixes
  • Android:
  • Issue #156673459: [AS Integration] Wording for the warning of AGP version is lower than AS
  • Issue #157696585: Review wordings used by the Ml Model Binding feature
  • Issue #158129876: [AS Integration] Mac only: table header display with ellipsis when column content is too short
  • Android App Bundles:
  • Issue #120517460: Unable to use `shrinkResources` in base module with dynamic features
  • Android Gradle Plugin:
  • Issue #112699321: Support APK Signature Scheme v3
  • Issue #158468794: AGP 4.1 alpha 9 & 10 can't run task :tasks on root module. DefaultTaskContainer#register(String, Class, Action) on task set cannot be executed in the current context.
  • Database Inspector:
  • Issue #157461455: Database inspector shows duplicated "Database" groups
  • Deployment:
  • Issue #146270367: The device disconnects as soon as the build completes.
  • Emulator:
  • Issue #157181475: View > Emulator doesn't toggle
  • Issue #150051156: Android Studio not AMD processor friendly; tries to automatically install Intel drivers rather than AMD.
  • Gradle:
  • Issue #157463496: Add integration tests for Manifest Class Generation (GenerateManifestJarTask)
  • Gradle Files Editor:
  • Issue #157287524: Bug: IDE suggest to update gradle version for a new project, and then fails to update it well when applied
  • Import/Sync:
  • Issue #158018185: When using "make project", AS reports build failures when using Kotlin DSL in buildSrc
  • New Code/Templates:
  • Issue #157809813: Default module name has two columns (::mylibrary) instead of only one (:mylibrary).
  • Running Tests:
  • Issue #157175636: In the multi-device test runner, install APKs in parallel
  • Upgrade Assistant:
  • Issue #120273289: Don't recommend updating android gradle plugin to alpha version when my android studio version is a beta (and likewise for stable->beta)

New in Android Studio 4.2 Canary 1 (Jun 10, 2020)

  • Support for Jetpack Compose:
  • Jetpack Compose toolkit provides a modern approach to building your app's UI. The toolkit also brings all of Kotlin's benefits, such as helping you to write concise and idiomatic code that's fully interoperable with Java.
  • For the best experience developing with Jetpack Compose, you should use the latest version of Android Studio 4.2. That's because when you use Android Studio to develop your app with Jetpack Compose, you can benefit from smart editor features, such as New Project templates and the ability to immediately preview your Compose UI.
  • New Jetpack Compose tooling support in 4.2
  • Android Studio now includes additional support for previewing and testing apps that use Jetpack Compose.
  • The following parameters for @Preview methods are now available:
  • showBackground: Switch on and off a background for your preview.
  • backgroundColor: Set a color that is only used in the preview surface.
  • uiMode: This new parameter can take any of the Configuration.UI_* constants and allows you to change the behavior of the preview to, for example, set it to Night Mode to see how the theme reacts.
  • Interactive preview:
  • In this mode, you can interact with your UI components, click them, and see how the state changes. It’s a quick way to get feedback on how your UI reacts and to preview the animations. To enable it, just click the interactive icon and the preview will switch modes.
  • To stop, click the Stop Interactive Preview in the top toolbar.
  • Deploy to device:
  • Use this feature to deploy a snippet of your UI to a device. This will help to test small parts of your code in the device without having to start the full application.
  • Click the deploy to device icon next to the @Preview annotation or in the top of the preview and Android Studio will deploy that @Preview to your connected device or emulator.
  • Preview Data Sources API:
  • The new Data Sources API allows you to generate previews from your data. If you have an existing list of data, or a list of themes, this API will allow you to inject it as a parameter to the @Preview method.
  • Improved instrumentation testing:
  • Starting in Android Studio 4.2 Canary 1, instrumentation tests can now be run across multiple devices in parallel and investigated using a specialized instrumentation test results panel. Using this panel, you can determine if tests are failing due to API level or hardware properties.
  • Testing your app across a wide variety of API levels and form factors is one of the best ways to ensure that all users have a great experience when using your app.
  • To take advantage of this feature:
  • Select Modify Device Set in the target device dropdown menu (in the top-center of the IDE).
  • Target device dropdown
  • Select the target devices and click OK.
  • Select Multiple Devices in the target device dropdown menu and run your tests.
  • Select Multiple Devices from target device dropdown
  • To view your test results in the Run panel, go to View > Tool Windows > Run.
  • The new test results panel allows you to filter your test results by status, device, and API level. Additionally, you can sort each column by clicking the header. By clicking on an individual test, you can view logs and device information individually for each device.

New in Android Studio 4.0 (May 29, 2020)

  • Android Gradle plugin 4.0.0
  • The latest version of the Android Gradle plugin includes many updates, such as Java 8 desugaring for older versions of Android and feature-on-feature dependencies. To learn more, read the full Android Gradle plugin release notes.
  • Additionally, Android Studio now includes new features to help you improve your build performance.
  • Build Analyzer
  • When using Android Studio 4.0 with Android Gradle plugin 4.0.0 and higher, the Build Analyzer window helps you understand and diagnose issues with your build process, such as disabled optimizations and improperly configured tasks. To open the Build Analyzer window, proceed as follows:
  • If you haven’t already done so, build your app by selecting Build > Make Project from the menu bar.
  • Select View > Tool Windows > Build from the menu bar.
  • In the Build window, open the Build Analyzer window in one of the following ways:
  • After Android Studio finishes building your project, click the Build Analyzer tab.
  • After Android Studio finishes building your project, click the link in the right side of the Build Output window.
  • The Build Analyzer window organizes possible build issues in a tree on the left. You can inspect and click on each issue to investigate its details in the panel on the right. When Android Studio analyzes your build, it computes the set of tasks that determined the build’s duration and provides a visualization to help you understand the impact of each of these tasks. You can also get details on warnings by expanding the Warnings node.
  • Java 8 library desugaring in D8 and R8
  • Android Studio now includes support for using a number of Java 8 language APIs without requiring a minimum API level for your app.
  • Through a process called desugaring, the DEX compiler, D8, in Android Studio 3.0 and higher already provided substantial support for Java 8 language features (such as lambda expressions, default interface methods, try with resources, and more). In Android Studio 4.0, the desugaring engine has been extended to be able to desugar Java language APIs. This means that you can now include standard language APIs that were available only in recent Android releases (such as java.util.streams) in apps that support older versions of Android.
  • The following set of APIs is supported in this release:
  • Sequential streams (java.util.stream)
  • A subset of java.time
  • java.util.function
  • Recent additions to java.util.{Map,Collection,Comparator}
  • Optionals (java.util.Optional, java.util.OptionalInt and java.util.OptionalDouble) and some other new classes useful with the above APIs
  • Some additions to java.util.concurrent.atomic (new methods on AtomicInteger, AtomicLong and AtomicReference)
  • ConcurrentHashMap (with bug fixes for Android 5.0)
  • To support these language APIs, D8 compiles a separate library DEX file that contains an implementation of the missing APIs and includes it in your app. The desugaring process rewrites your app’s code to instead use this library at runtime.
  • Feature-on-feature dependencies:
  • In previous versions of the Android Gradle plugin, all Dynamic Feature modules could depend only on the app's base module. When using Android Gradle plugin 4.0.0 and higher, you can now include a feature module that depends on another feature module. That is, a :video feature can depend on the :camera feature, which depends on the base module.
  • This means that when your app requests to download a dynamic feature module, the app also downloads other feature modules it depends on. After you create dynamic feature modules for your app, you can declare a feature-on-feature dependency in the module’s build.gradle file. For example, the :video module declares a dependency on :camera.
  • Additionally, you should enable the feature-on-feature dependency feature in Android Studio (to support the feature when editing the Run configuration, for example) by clicking Help > Edit Custom VM Options from the menu bar and including the following: -Drundebug.feature.on.feature=true
  • Dependencies metadata:
  • When building your app using Android Gradle plugin 4.0.0 and higher, the plugin includes metadata that describes the dependencies that are compiled into your app. When uploading your app, the Play Console inspects this metadata to provide you with the following benefits:
  • Get alerts for known issues with SDKs and dependencies your app uses
  • Receive actionable feedback to resolve those issues
  • The data is compressed, encrypted by a Google Play signing key, and stored in the signing block of your release app. However, you can inspect the metadata yourself in the local intermediate build files in the following directory: //build/outputs/sdk-dependencies/release/sdkDependency.txt.
  • Support for Kotlin DSL script files:
  • The Android Gradle plugin now supports Kotlin DSL build script files (*.kts). When used with Android Studio, certain IDE features, such as the Project Structure dialog and build script quick fixes, now also support reading and writing to Kotlin build script files.
  • CPU Profiler upgrades:
  • Based on your feedback, we've focused our efforts on improving the user experience in the CPU Profiler in two important ways.
  • First, compared to previous Android Studio releases, error rates for CPU recordings in the CPU Profiler have been reduced significantly.
  • Second, the CPU Profiler UI has been overhauled to provide a more intuitive workflow. Some notable UI changes include the following:
  • CPU recordings are now separated from the main profiler timeline to allow for easier analysis. Recorded data are organized in groups on the left side of the Profiler window. You can move groups up and down to reorganize the list by clicking the options options icon in profiler iconicon in the top-right corner of the window, or by dragging-and-dropping individual items within a group.
  • The tabs for Flame Chart, Top Down, and Bottom Up analyses are now in the righthand column. In the Threads group, threads are automatically expanded for System Trace recordings and collapsed by default for other recording types. Double-click (or press Enter) on thread names to expand or collapse them.
  • The System Trace UI, as shown in the screenshot, also includes improvements.
  • Events are now uniquely colored for easier differentiation.
  • Threads are sorted by the number of trace events within them so that the “busier” threads are ranked higher in the list.
  • You can select one or more threads to see analysis in the right hand column for those selected threads only.
  • Similarly you can select a trace event within any thread to see analysis data for it.
  • Design tools:
  • This version of Android Studio includes updates to the design tools, such as the Layout Inspector and an all-new Motion Editor.
  • New Motion Editor:
  • Android Studio now includes a visual design editor for the MotionLayout layout type, making it easier to create and preview animations.
  • The Motion Editor provides a simple interface for manipulating elements from the MotionLayout library that serves as the foundation for animation in Android apps. In previous releases, creating and altering these elements required manually editing constraints in XML resource files. Now, the Motion Editor can generate this XML for you, with support for start and end states, keyframes, transitions, and timelines.
  • Live Layout Inspector:
  • Debug your layout with an updated Live Layout Inspector that provides complete, real-time insights into your app’s UI while it’s deployed to a device.
  • To open a Layout Inspector window, go to View > Tools Windows > Layout Inspector. Along with many of the same features of the existing Layout Inspector, the Live Layout Inspector also includes:
  • Dynamic layout hierarchy: Updates as the views on the device change.
  • Property values resolution stack: Investigate where a resource property value originates in the source code and navigate to its location by following the hyperlinks in the properties pane.
  • 3D view: See your app’s view hierarchy at runtime with advanced 3D visualization. To use this feature, in the Live Layout Inspector window simply click on the Layout and rotate it.
  • You can use the Live Layout Inspector only when deploying your app to a device or emulator running API level 29 or higher. To enable the Live Layout Inspector, go to File > Settings > Experimental and check the box next to Enable Live Layout Inspector. Then click the checkbox next to Live updates above the Layout Display.
  • Layout Validation:
  • Layout Validation is a visual tool for simultaneously previewing layouts on different devices and configurations, helping you detect layout errors and create more accessible apps.
  • You can access this feature by clicking on the Layout Validation tab in the top-right corner of the IDE window
  • In the Layout Validation window, you can select from four different configuration sets, including:
  • Pixel Devices: Preview your app on a selection of Pixel devices.
  • Custom: Preview your app using custom display options such as screen orientation or language.
  • Color Blind: Preview your app using simulations of common types of color blindness.
  • Font Sizes: Preview your app using a variety of font sizes.
  • Smart editor features for code shrinker rules:
  • Android Studio now provides smart editor features when you open code shrinker rules files for R8, such as syntax highlighting, code completion, and error checking. The editor also integrates with your Android Studio project to provide full symbol completion for all classes, methods, and fields, and includes quick navigation and refactoring.
  • Kotlin Android live templates:
  • Android Studio now includes Android live templates for your Kotlin classes. For example, you can now type toast and press the Tab key to quickly insert a Toast. For a full list of available live templates, click File > Settings from the menu bar (or Android Studio > Preferences on macOS) and navigate to Editor > Live Templates.
  • Fragment wizard and new fragment templates:
  • A New Android Fragment wizard and new fragment templates are now available when you navigate to File > New > Fragment > Gallery or click Create new destination in the Navigation editor.
  • Expanded camera support in Android emulator:
  • When using the Android 11 image, Android Emulator camera includes the following new features:
  • RAW capture
  • YUV reprocessing
  • Level 3 devices
  • Logical camera support
  • To learn more about developing for the next version of Android, go to the Android 11 Developer Preview user documentation.
  • clangd now available for C++ code editor:
  • Jetbrains CLion, the technology underpinning Android Studio's C++ language support, now uses an inspection engine based on LLVM clangd and clang-tidy, speeding up C/C++ code completion and providing a more seamless integration with clang-tidy.
  • Now available in the Android Studio C++ code editor, clangd and clang-tidy are both part of open-source LLVM extra tooling:
  • clangd features code completion, compile error messages in the editor, and go-to-definition navigation.
  • clang-tidy is a C++ linter tool with an extensible framework for diagnosing and fixing typical programming errors.
  • In prior releases, Android Studio users could use clang-tidy through the NDK; with this change, Android Studio is no longer dependent on the NDK for clang-tidy functionality.
  • ndk.dir setting in local.properties file is deprecated:
  • The value for ndk.dir should no longer be set in your app's local.properties file, and support for this ndk.dir setting will be removed in a future version. The Android Gradle Plugin sets the NDK version by default, but if you need a specific version of the NDK, you can set android.ndkVersion in build.gradle.
  • For more information on setting up the NDK, see Install and configure the NDK and CMake.
  • For easier side-by-side analysis, you can now view all thread activity in the thread activity timeline (including methods, functions, and events). There are several ways to navigate the timeline:
  • To focus on a specific point in time, drag a range in the CPU usage chart on the top left.
  • To zoom in or out, use the mouse wheel while holding down Control (or Command on MacOS). To pan left or right, drag while holding down the spacebar.
  • Alternatively, use the W and A keys for fine-grained zooming in and out, and the S and D keys for fine-grained panning left and right.

New in Android Studio 4.1 Canary 10 (May 26, 2020)

  • Updated themes and styles in new project templates:
  • Android Studio templates in the Create New Project dialog now use Material Design Components and updated themes and styles guidance by default.
  • Prevent new and existing databases from closing:
  • To make it easier to inspect databases in the Database Inspector, you can prevent new and existing connections to your databases from closing by clicking Keep database connections open.
  • General Fixes:
  • Android Gradle Plugin:
  • Gradle configuration fails on project with several modules when AGP is applied using plugin management
  • Post-tasks variant API: Adding manifest placeholders is broken and breaks the build from AGP 3.x to AGP 4.1.0-alpha08
  • Compile error because R.java limit (error: too many constants)
  • C++ Debugger:
  • App crash (segfault) when debugging JNI functions with local jstring reference
  • Code Analysis:
  • Resource bundle redefinition for plugin 'org.jetbrains.android'. Old value: messages.AndroidBundle
  • Database Inspector:
  • The empty database warning does not have the right colors in Dark mode
  • Inspector annotator is accessing databases from wrong thread
  • Databinding:
  • viewBinding issue with Android Studio 3.6 Stable
  • Emulator:
  • Diagnostic warnings are shown as error messages
  • Espresso Recorder:
  • Record Espresso Test Generates Buggy Tests
  • testrecorder.ui.RecordingDialog should not initialize constants from network
  • Import/Sync:
  • Support Variant switching without running Gradle (like switching build variants)
  • local.properties file generated in buildSrc folder
  • Layout Editor:
  • Studio freezes when clicking a Button view in the design surface
  • New Code/Templates:
  • Bug: crazy focus changes upon activity creation
  • Project Structure:
  • : Migrating Android Studio 3.5 Project to 3.6 rc03 causes
  • Unsupported modules detected error
  • Project View:
  • Renaming a dynamic feature module in Android Studio doesn't update the base build.gradle
  • Resources:
  • "Remove Unused Resources" for view binding missed method reference syntax (e.g. `LayoutBinding::inflate`)
  • Search:
  • Navigate to symbol fails to find any symbols
  • What's New Assistant:
  • Issue #154924753: What's New Assistant title fonts are too small

New in Android Studio 4.1 Canary 9 (May 7, 2020)

  • GENERAL FIXES:
  • Build Variants:
  • Exception thrown when trying to run/configure a release build
  • Data Binding:
  • AGP 3.6.2: Incremental compilation failure in DataBinding
  • LiveData Custom Binding
  • Database Inspector:
  • Database inspector improvements
  • App crash when trying to use Database Inspector
  • Debugger:
  • Consider restoring A 3.6 behavior of "Stop" button
  • Dexer (D8):
  • AGP 4.x build fails with exception in L8DexDesugarLibTask configuration
  • Lint:
  • new Lint check: calling the same super function more than once
  • SDK Manager:
  • Command-line sdkmanager needs better error if root dir can't be found
  • sdk manager should be smarter about deriving package path
  • Package A shouldn't overwrite package B if B is incorrectly in A's location
  • cmdline-tools top-level directory shouldn't be called "tools"
  • Add --installed option to sdkmanager --list
  • CLI does not respect TERM=dumb
  • Usability issue: subcommand and/or quotes around package name for clarity
  • sdkmanager --package_file= command isn't whitespace tolerant
  • sdkmanager from cmdlinetools fails with unhelpful exception when --sdk_root supplied
  • sdkmanager --update doesn't output anything to stdout
  • Tools Windows:
  • Android command-line tools seems to be 6200805 broken on Windows
  • View Binding:
  • Android View Binding does not support id's using dot case
  • Merge tag is causing compilation error

New in Android Studio 4.0 Beta 5 (Apr 24, 2020)

  • General fixes:
  • This update also includes fixes for the following public issues: Android Gradle Plugin
  • Issue #152872138: Disabling AGP features causes ./gradlew connectedCheck to fail
  • Issue #152996306: Occasional, hard-to-repro DexArchiveMergerException when building
  • Issue #148525428: Android Studio 4.0 Canary 8 and 9 don't pick up versionCode changes when using app bundle and APK
  • Issue #152759930: Main dex list fails w/o javac output
  • Issue #152500503: Downgrade “Creating configuration” to debug-level?
  • Data Binding:
  • Issue #151239523: Data Binding / View Binding projects suffer performance due to BindingClassFinder.findAllBindingClasses
  • Dexer (D8):
  • Issue #153042496: Support compatibility mode for JVM default in Kotlin for minSdkVersion 16-20
  • Import/Sync:
  • Issue #149045341: Very long sync times when consuming a custom configuration
  • Layout Inspector:
  • Issue #151496808: [BUG][4.0.0-beta02] LayoutInspector -> [+ Select Process ] Button does nothing...
  • Lint:
  • Issue #140642032: Kotlin class property annotated with VisibleForTesting not generating error/warning when called from other Kotlin code
  • Issue #150292219: Lint runs twice as slow on AGP 4 Beta 1 + False Positive
  • Issue #123835101: Quickfix is out of reach and crashes on same input
  • Issue #151289778: [AGP 4.0.0-beta02] Lint fails with Java OutOfMemoryError
  • Shrinker (R8):
  • Issue #151964517: VerifyError rejected class with com.google.android.gms.internal.measurement.zzx
  • Issue #152865051: Incorrect code after desugaring
  • Issue #152715309: R8 does not work with TestModules AGP.4.1 alpha
  • ViewBinding:
  • Issue #152413696: ViewBinding: including layout with an ID equal to the layout name produces "variable might not have been initialized"

New in Android Studio 3.6.3 (Apr 17, 2020)

  • This minor release fixes a caching issue for modules with DataBinding and bundles the Kotlin 1.3.71 plugin.

New in Android Studio 4.0 Beta 4 (Apr 7, 2020)

  • Build Analyzer disabled
  • The Build Analyzer is disabled in Android Studio 4.0 Beta 4. It will be re-enabled in Beta 5.
  • General fixes
  • This update also includes fixes for the following public issues: Android Gradle Plugin
  • Issue #147535554: Core library desugaring not applied to instrumentation tests
  • Issue #146165298: Android library projects should only apply multidex to androidTestImplementation
  • Issue #146869072: Task failed on mergeExtDex
  • Issue #152428342: Build seems to be stuck
  • Build Variants
  • Issue #150325708: Build Flavour resets itself to default each time I restart Android Studio
  • Dexer (D8)
  • Issue #151969439: R8 raise NullException while perform :app:dexBuilderDebugAndroidTest
  • Issue #151207121: Many warnings when using desugared library
  • Import/Sync
  • Issue #149891395: Kapt-generated files not recognized in IDE as sources
  • Layout Editor
  • Issue #151964515: Endless loop when displaying JavaDoc for styles with cycles
  • Lint
  • Issue #151409564: Lint fails to detect MotionLayout Constraints
  • Lint Inspections
  • Issue #150198810: Bug: false positive error of version check
  • Run
  • Issue #144274828: "Build resource" action runs JPS builder in Android Studio
  • Issue #150583984: ApkProvisionException: No outputs for the main artifact of variant: debug
  • Shrinker (R8)
  • Issue #151649643: coreLibraryDesugaringEnabled = true leads to ClassNotFoundException on debug builds
  • Issue #150274427: RET should be handled by the ASM jsr inliner
  • View Binding
  • Issue #140955511: View binding build fail: Unresolved reference
  • Issue #151317169: Missing nullability annotations on bind and inflate fields / return types

New in Android Studio 4.1 Canary 4 (Mar 24, 2020)

  • General fixes:
  • This update includes fixes for the following public issues: C++ Build
  • Issue #143411149: Syncing after any change to any Gradle file forces full rebuild of native code
  • Lint:
  • Issue #150530989: Lint crashes on kotlin elvis in 4.1.0-alpha01
  • Issue #142590628: tools:locale="en" does not remove warnings
  • Issue #151409564: Lint fails to detect MotionLayout Constraints
  • Issue #151719769: Offer stable update versions of the Gradle plugin
  • View Binding:
  • Issue #140955511: View binding build fail: Unresolved reference
  • Issue #151317169: Missing nullability annotations on bind and inflate fields / return types

New in Android Studio 3.6.1 (Mar 24, 2020)

  • Git version control authentication issue resolved:
  • In the initial release of Android Studio 3.6, operations requiring authentication in Git version control were broken in the IDE. This bug has been fixed in 3.6.1.
  • Multi Preview feature removed:
  • This feature wasn't quite ready for version 3.6 of Android Studio and had been inadvertently left in the final release. We've removed Multi Preview from Android Studio 3.6.1. However, if you would like to use Multi Preview, a more refined version of the feature is available in the 4.0 beta releases.

New in Android Studio 4.1 Canary 3 (Mar 19, 2020)

  • General fixes:
  • This update includes fixes for the following public issues: Android Gradle Plugin
  • Issue #150500779: test code is not able to access internal methods from the library it is testing
  • Issue #151040815: BuildTypeAttr.ATTRIBUTE and VariantAttr.ATTRIBUTE in Android Gradle plugin 4.0.0-beta01 are not ABI-compatible with 3.6 of the plugin
  • Issue #150438232: Caching seems to be broken for CheckMultiApkLibrariesTask
  • Issue #150817339: MergeJavaResourcesDelegateTest.testMergeResources fails locally
  • Issue #113978810: Bundled proguard-android.txt should not obfuscate descriptor classes for native methods
  • Issue #142890134: AGP 3.6.0-beta01: relocatability problem with syncDebugLibJars
  • C++ Debugger:
  • Issue #122906050: Unable to debug apk - cannot find default activity
  • Data Binding:
  • Issue #150989409: False inspection: The expression "..." cannot be inverted, so it cannot be used in a two-way binding
  • Issue #144300600: error: cannot generate view binders java.lang.IllegalArgumentException: Parameter specified as non-null is null: method android.databinding.tool.reflection.RecursiveResolutionStack.visit, parameter referenceObject
  • Import/Sync:
  • Issue #149045341: Very long sync times when consuming a custom configuration
  • Issue #150848406: GradleVersions pattern matcher problem
  • Layout Editor:
  • Issue #150367191: Re-enable TypeResolverSdkTest.testMaterialViewAttributeTypes
  • Lint:
  • Issue #150506104: Lint failure when upgrading to 3.6.x
  • Issue #150530989: Lint crashes on kotlin elvis in 4.1.0-alpha01
  • Issue #150292219: Lint runs twice as slow on AGP 4 Beta 1 + False Positive
  • Issue #140881211: Android Studio 3.6 canary 10 incorrectly marks butterknife as annotation processor.
  • Issue #126439418: @Suppress tag prevents Lint detectors from resolving reference
  • Issue #148172219: [AGP 4.0.0-alpha09] False error: X must extend android.view.View
  • Lint Inspections:
  • Issue #125138962: Bug: removed-unused-resources can show items that are actually used
  • Testing:
  • Issue #144788300: "Test framework quit unexpectedly" after running Espresso tests in Studio 3.6
  • View Binding:
  • Issue #150405777: Add modification tracker for view binding enabled / disabled

New in Android Studio 4.0 Beta 2 (Mar 11, 2020)

  • This section provides a summary of the new features and changes in Android Studio 4.1.
  • Support for Jetpack Compose:
  • Jetpack Compose toolkit provides a modern approach to building your app's UI. The toolkit also brings all of Kotlin's benefits, such as helping you to write concise and idiomatic code that's fully interoperable with Java.
  • For the best experience developing with Jetpack Compose, you should use the latest version of Android Studio 4.1. That’s because when you use Android Studio to develop your app with Jetpack Compose, you can benefit from smart editor features, such as New Project templates and the ability to immediately preview your Compose UI.
  • To learn more and get started, go to the Jetpack Compose overview.
  • Assertions in debug builds:
  • Assertions in your Java code are now enabled when deploying the debug version of your app. Because the Android runtime doesn’t support enabling assertions at runtime (that is, passing the equivalent of the -ea/-enableassertions flag to a Java VM), assertions in your app previously had no effect.
  • Now, when you build and deploy the debug version of your app using Android Gradle plugin 4.1.0-alpha01 and higher, the built-in compiler (D8) rewrites the code to enable assertions at compile time, so you always have the assertion checks active.

New in Android Studio 4.1 Canary 2 (Mar 11, 2020)

  • This update includes fixes for the following public issues: Android Gradle Plugin:
  • Issue #149193056: Suppress warning about:buildSrc:configurePrecompiledScriptDependenciesResolver being non-incremental
  • Issue #149883012: com.android.zipflinger.Zip is too generic of a name
  • Issue #148974861: [Android Library Publishing] Do not publish VariantAttr attribute for *all* component
  • Apply Changes:
  • Issue #144236330: "Apply Changes and Restart Activity" and "Rerun Tests" commands use the same keyboard shortcut
  • Data Binding:
  • Issue #149045351: Does view binding work between modules?
  • IntelliJ:
  • Issue #124680708: Git Push Crashes from IDE
  • Lint Inspections:
  • Issue #149753966: "Unguarded field access" inspection does nor work for androidx.annotation.GuardedBy
  • Issue #149342692: Navigation resource is not being found by Lint
  • Prefab Integration:
  • Issue #149575364: IllegalStateException from Run button in AS when using native dependencies with android.enableParallelJsonGen=true
  • Run:
  • Issue #144149957: Retry Install link does not work
  • Test:
  • Issue #123987001: Test orchestrator coverage data is missing

New in Android Studio 3.6 (Feb 26, 2020)

  • Design tools:
  • This version of Android Studio includes updates to several design tools, including the Layout Editor and Resource Manager.
  • The following updates to the visual design editors are included in this release:
  • Design editors, such as the Layout Editor and Navigation Editor, now provide a Split view that enables you to see both the Design and Code views of your UI at the same time. In the top-right corner of the editor window, there are now three buttons view icons for toggling between viewing options:
  • To enable split view, click the Split icon split view icon.
  • To enable XML source view, click the Source icon source view icon.
  • To enable design view, click the Design icon design view icon.
  • The controls for zooming and panning within design editors have moved to a floating panel in the bottom-right corner of the editor window.
  • Color Picker Resource Tab:
  • To help you quickly update color resource values in your app when you're using the color picker in your XML or the design tools, the IDE now populates color resource values for you.
  • Resource Manager:
  • The Resource Manager contains the following updates:
  • The Resource Manager now supports most resource types.
  • When searching for a resource, the Resource Manager now displays results from all project modules. Previously, searches returned results only from the selected module.
  • The filter button lets you view resources from local dependent modules, external libraries, and the Android framework. You can also use the filter to show theme attributes.
  • You can now rename resources during the import process by clicking within the textbox above the resource.
  • Updates to the Android Gradle plugin:
  • The latest version of the Android Gradle plugin includes many updates, including optimizations for build speed, support for the Maven publishing plugin, and support for View Binding. To learn more, read the full release notes.
  • View binding
  • View binding allows you to more easily write code that interacts with views by generating a binding class for each XML layout file. These classes contain direct references to all views that have an ID in the corresponding layout.
  • Because it replaces findViewById(), view binding eliminates the risk of null pointer exceptions resulting from an invalid view ID.
  • Apply Changes:
  • You can now add a class and then deploy that code change to your running app by clicking either Apply Code Changes Apply Code Changes icon or Apply Changes and Restart Activity
  • Refactor menu option to enable Instant Apps support:
  • You can now instant-enable your base module at any time after creating your app project as follows:
  • Open the Project panel by selecting View > Tool Windows > Project from the menu bar.
  • Right-click on your base module, typically named 'app', and select Refactor > Enable Instant Apps Support.
  • In the dialog that appears, select your base module from the dropdown menu.
  • Click OK.
  • Deobfuscate class and method bytecode in APK Analyzer:
  • When using the APK Analyzer to inspect DEX files, you can deobfuscate class and method bytecode as follows:
  • Select Build > Analyze APK from the menu bar.
  • In the dialog that appears, navigate to the APK you want to inspect and select it.
  • Click Open.
  • In the APK Analyzer, select the DEX file you want to inspect.
  • In the DEX file viewer, load the ProGuard mappings file for the APK you’re analyzing.
  • Right-click on the class or method you want to inspect and select Show bytecode.
  • Native tooling:
  • The following updates support native (C/C++) development in Android Studio.
  • Kotlin support
  • The following NDK features in Android Studio, previously supported in Java, are now also supported in Kotlin:
  • Navigate from a JNI declaration to the corresponding implementation function in C/C++. View this mapping by hovering over the C or C++ item marker near the line number in the managed source code file.
  • Automatically create a stub implementation function for a JNI declaration. Define the JNI declaration first and then type “jni” or the method name in the C/C++ file to activate.
  • Unused native implementation functions are highlighted as a warning in the source code. JNI declarations with missing implementations are also highlighted as an error.
  • When you rename (refactor) a native implementation function, all corresponding JNI declarations are updated. Rename a JNI declaration to update the native implementation function.
  • Signature checking for implicitly-bound JNI implementations.
  • Other JNI improvements
  • The code editor in Android Studio now supports a more seamless JNI development workflow, including improved type hints, auto-completion, inspections, and code refactoring.
  • APK reloading for native libraries
  • You no longer need to create a new project when the APK in your project is updated outside the IDE. Android Studio detects changes in the APK and gives you the option to re-import it.
  • Attach Kotlin-only APK sources:
  • It is now possible to attach Kotlin-only external APK sources when you profile and debug pre-built APKs. To learn more, see Attach Kotlin/Java sources.
  • Leak detection in Memory Profiler:
  • When analyzing a heap dump in the Memory Profiler, you can now filter profiling data that Android Studio thinks might indicate memory leaks for Activity and Fragment instances in your app.
  • The types of data that the filter shows include the following:
  • Activity instances that have been destroyed but are still being referenced.
  • Fragment instances that do not have a valid FragmentManager but are still being referenced.
  • In certain situations, such as the following, the filter might yield false positives:
  • A Fragment is created but has not yet been used.
  • A Fragment is being cached but not as part of a FragmentTransaction.
  • Emulators:
  • Android Studio 3.6 helps you take advantage of several updates included in Android Emulator 29.2.7 and higher, as described below.
  • Improved Location Support
  • Android Emulator 29.2.7 and higher provides additional support for emulating GPS coordinates and route information. When you open the Emulators Extended controls, options in the Location tab are now organized under two tabs: Single points and Routes.
  • Single points
  • In the Single points tab, you can use the Google Maps webview to search for points of interest, just as you would when using Google Maps on a phone or browser. When you search for or click on a location in the map, you can save the location by selecting Save point near the bottom of the map. All of your saved locations are listed on the right side of the Extended controls window.
  • To set the Emulators location to the location you have selected on the map, click the Set location button near the bottom right of the Extended controls window.
  • Routes:
  • Similar to the Single points tab, the Routes tab provides a Google Maps webview that you can use to create a route between two or more locations. To create and save a route, do the following:
  • In the map view, use the text field to search for the first destination in your route.
  • Select the location from the search results.
  • Select the Navigate Navigate button in Google Maps. button.
  • Select the starting point of your route from the map.
  • (Optional) Click Add destination to add additional stops to your route.
  • Save your route by clicking Save route in the map view.
  • Specify a name for the route and click Save.
  • To use this feature, first capture a heap dump or import a heap dump file into Android Studio. To display the fragments and activities that may be leaking
  • memory, select the Activity/Fragment Leaks checkbox in the heap dump pane of the Memory Profiler.
  • Multi-display support:
  • The Android Emulator now allows you to deploy your app to multiple displays, which support customizable dimensions and can help you test apps that support multi-window and multi-display. While a virtual device is running, you can add up to two additional displays as follows:
  • Open the Extended controls and navigate to the Displays tab.
  • Add another display by clicking Add secondary display.
  • From the dropdown menu under Secondary displays, do one of the following:
  • Select one of the preset aspect ratios
  • Select custom and set the height, width, and dpi for your custom display.
  • (Optional) Click Add secondary display to add a third display.
  • Click Apply changes to add the specified display(s) to the running virtual device.
  • Resumable SDK downloads:
  • downloading SDK components and tools using the SDK Manager, Android Studio now allows you to resume downloads that were interrupted (for example, due to a network issue) instead of restarting the download from the beginning. This enhancement is especially helpful for large downloads, such as the Android Emulator or system images, when internet connectivity is unreliable.
  • In addition, if you have an SDK download task running in the background, you can now pause or resume the download using the controls in the status bar.
  • Win32 deprecated:
  • The Windows 32-bit version of Android Studio will no longer receive updates after December 2019, and it will no longer receive support after December 2020. You can continue to use Android Studio. However, to receive additional updates, upgrade your workstation to a 64-bit version of Windows.
  • To learn more, read the Windows 32-bit depreciation blog.
  • New option for optimizing Gradle sync time
  • In previous releases, Android Studio retrieved the list of all Gradle tasks during Gradle Sync. For large projects, retrieving the task list could cause slow sync times.
  • To improve Gradle Sync performance, go to File > Settings > Experimental and select Do not build Gradle task list during Gradle sync.
  • When you enable this option, Android Studio skips building the task list during sync, which allows Gradle Sync to complete faster and improves UI responsiveness. Keep in mind, when the IDE skips building the task list, the task lists in the Gradle panel are empty, and task name auto-completion in build files does not work.
  • New location to toggle Gradle's offline mode:
  • To enable or disable Gradle's offline mode, first select View > Tool Windows > Gradle from the menu bar. Then, near the top of the Gradle window, click Toggle Offline Mode Gradle offline button in the Gradle panel..
  • IntelliJ IDEA 2019.2:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2019.2 release.

New in Android Studio 3.6 RC 3 (Feb 10, 2020)

  • General fixes:
  • This update also includes fixes for the following public issues: Android Studio
  • Issue #146520216: Upgrading Studio 3.6.0-beta05 to 3.6.0-rc01 breaks packageDebugResources for vector drawables
  • Editing:
  • Issue #147039508: Bug: IDE suggests to use specific version of Libphonenumber, but doesn't actually do anything when I choose it
  • Gradle:
  • Issue #142242084: assembleDebug fails with FileNotFoundException on AS 3.6 Canary 12
  • Gradle Sync:
  • Issue #129261435: Android syncing hangs if distributionSha256Sum mismatches after upgrade
  • Lint:
  • Issue #146403481: Android Studio 3.6 is not performing lint checks from modules
  • Shrinker (R8):
  • Issue #146597396: R8 gives a "no checksum information while checksum encoding is requested" error
  • Issue #144151805: App crash during UI tests when running with R8
  • Issue #146957343: R8 issue: com.google.android.gms.internal.cast.zzka is null?

New in Android Studio 3.6 RC 1 (Dec 17, 2019)

  • General fixes:
  • This update also includes fixes for the following public issues: Core IDE:
  • Issue #144668812: Importing SVG file with a style combination creates incorrect vector drawable
  • Data Binding:
  • Issue #144788290: Changes to data binding layouts are not processed by the IDE
  • Design Tools:
  • Issue #145086611: SVG cannot be converted to Android Vector Drawable
  • Gradle:
  • Issue #143375935: AS 4.0 Canary 1 - INSTALL_FAILED_NOT_APK
  • Issue #144896521: Update AGP 3.6 to Gradle 5.6.4
  • Issue #143762955: AGP 3.6.0 beta01 - Runtime "NoClassDefFoundError" for R resources during JVM unit test without R8 turned on
  • Issue #144249620: Calling registerJavaGeneratingTask with only kotlin sources in a kotlin-only project triggers javac with no sources
  • Jetifier:
  • Issue #145125886: Integrate jetifier beta08 to AGP
  • Resource Manager:
  • Issue #144443057: Select resource (Pick a resource dialog) displays hidden files too (named with prefix .)
  • View Binding:
  • Issue #141255591: ViewBinding loses package of included view after modifying it
  • Issue #140882631: Incorrect package name for ids

New in Android Studio 4.0 Canary 5 (Dec 4, 2019)

  • App Development:
  • Issue #37123156: aapt_rules.txt should specific explicitly used constructor instead of argument wildcard.
  • Build:
  • Issue #139782877: Native builds compile all architectures now instead of just the one needed for the target device
  • Core IDE:
  • Issue #144668812: Importing SVG file with a style combination creates incorrect vector drawable
  • Data Binding:
  • Issue #144788290: Changes to data binding layouts are not processed by the IDE
  • Issue #141936603: Auto-complete for data binding includes classes not known/visible to the current module
  • Issue #144527914: Unresolved reference for inner class when using an <import alias="..."/>
  • Issue #123427765: Binding expression not supported VectorDrawableCompat.
  • Issue #144246528: DataBinding is occurs NullPointerException if there are two LiveData flags when only one of them has initial value
  • Issue #142405164: DataBinding variable cannot use java.lang.Void in AGP 3.6
  • Deployment:
  • Issue #144109935: Android Studio 4 Canary does noting on Run->Run
  • Issue #144443063: Run button is always disabled after running configuration with another configuration
  • Design Tools:
  • Issue #144057801: Bug: importing SVG files create incorrect VectorDrawable
  • Gradle:
  • Issue #143375935: AS 4.0 Canary 1 - INSTALL_FAILED_NOT_APK
  • Issue #144553651: Incorrect R8 version parsing for targeted rules
  • Issue #144916156: W/o external transforms present we should use artifact transforms
  • Jetifier:
  • Issue #145125886: Integrate jetifier beta08 to AGP
  • Layout Editor:
  • Issue #124231532: Property Panel stays empty after adding a recycler view for the first time
  • Navigation Editor:
  • Issue #142491178: Visual bug while using the design view of the navigation graph.
  • New Project Wizard:
  • Issue #144443773: Creating a project with an apostrophe in the human readable name makes compilation fail
  • Project System:
  • Issue #143291278: Creating a new Module edits settings.gradle even if settings.gradle.kts is present
  • Resource Manager:
  • Issue #144443057: Select resource (Pick a resource dialog) displays hidden files too (named with prefix .)
  • Run Debug:
  • Issue #143229099: Activity can't be found by run configuration
  • View Binding:
  • Issue #143160165: View Binding will cause the code to expose / leak the IDs or names of the Views after doing ProGurad or R8
  • Issue #143807078: dataBindingGenBaseClassesDebug task fails with "part 'layer-list' is keyword"

New in Android Studio 3.6 Beta 5 (Dec 4, 2019)

  • Design Tools:
  • Issue #144057801: Bug: importing SVG files create incorrect VectorDrawable
  • Gradle:
  • Issue #140508065: Jars packaged with AAR not added to desugaring classpath
  • Issue #144553651: Incorrect R8 version parsing for targeted rules
  • Issue #142543668: AppPublishingTest fails with Gradle 6.0
  • Resource Manager:
  • Issue #143833199: File>New>Vector Asset: Error messages half hidden and non-helpful.
  • View Binding:
  • Issue #142597725: Add autocomplete support for tools:ignoreViewBinding
  • Issue #142742308: Having <fragment> tag as root of layout file generates ViewBinding that does not compile

New in Android Studio 3.6 Beta 4 (Nov 14, 2019)

  • General fixes:
  • This update also includes fixes for the following public issues:
  • Data Binding:
  • Issue #142533358: ViewStub breaks auto import in kotlin files
  • Gradle:
  • Issue #142342272: With Android Studio 3.5.0 so-libs are not included when we debug with Run->Debug
  • Issue #141573404: Plugin 3.5.0 fails on sdk addon. 3.4.2 worked fine
  • Shrinker (R8):
  • Issue #142203515: ConcurrentModificationException on git_r8-wip-dev
  • Issue #143550696: R8 Outline optimization generates classes with same name resulting duplicate class references
  • Issue #137836288: Removal of class fields have unintended consequences

New in Android Studio 3.6 Beta 3 (Nov 6, 2019)

  • General fixes:
  • This update also includes fixes for the following public issues:
  • Gradle:
  • Issue #135900510: Fix task validation errors
  • Issue #141861587: Zipflinger creating apk which unzip with empty file permissions
  • Issue #142498320: Execution failed for task ':data:compileDebugLibraryResources'. Android Studio 3.6-beta01
  • Kotlin:
  • Issue #139804255: Refactorings put XML entities in the change
  • Lint:
  • Issue #143455360: Custom lint rules fail to run when another lint.jar uses service loader entries
  • Issue #143501799: ResourceEvaluator#getResource doesn't work for kotlin expressions
  • Shrinker (R8):
  • Issue #142909854: R8 Generate Code Causing java.lang.VerifyError

New in Android Studio 3.5.2 (Nov 4, 2019)

  • This minor release improves stability and performance, and includes fixes for the following issues:
  • Gradle:
  • Issue#141927977: Constraint reason strings can take too much memory on large projects
  • Layout Editor:
  • Issue #129457736: Reformatting changes the order of elements
  • Core IDE:
  • Issue #140220674: Setting JDK location to JAVA_HOME in project structure dialog does not set JDK location to JAVA_HOME.
  • Issue #142002567: Android Studio 3.5.1 fails to sync
  • Issue #129261435: Android syncing hangs if distributionSha256Sum mismatches after upgrade
  • Databinding:
  • Issue #140999936: AGP 3.6-alpha11: error: cannot generate view binders java.lang.StackOverflowError
  • Issue #142130560: Arch components github sample does not compile with AGP 3.6.alpha11
  • Issue #141633235: data binding crashes if you have Foo extends LiveData<Foo>

New in Android Studio 3.6 Beta 2 (Oct 31, 2019)

  • General fixes:
  • This update also includes fixes for the following public issues: Android Studio
  • Issue #142467886: Too many attributes in a single causes the app to crash when access R.styleable
  • Data Binding:
  • Bindings are being created for non-data binding layouts
  • MergedManifestManager.getSnapshot(facet).getPackage() returns null unexpectedly
  • AGP 3.6-alpha11: error: cannot generate view binders java.lang.StackOverflowError
  • Arch components github sample does not compile with AGP 3.6.alpha11
  • data binding crashes if you have Foo extends LiveData
  • Gradle:
  • Missing native libs after update an external dependency with native libs java.lang.UnsatisfiedLinkError find "libmylib-jni.so"
  • aaptOptions.noCompress should be case-insensitive for android resources
  • Lint:
  • Android lint reports duplicates of the same issue
  • Profilers:
  • Error while dexing with okhttp 4.0.0 releases
  • Shrinker (R8):
  • ClassNotFoundException when compiling app with R8
  • View Binding:
  • Update light class API to reflect changes for layouts

New in Android Studio 3.6 Beta 1 (Oct 11, 2019)

  • General fixes:
  • This update also includes fixes for the following public issues: APK Viewer
  • Issue #138772444: Enable opening AAR, AAB, DEX files from project
  • Connection Assistant:
  • Issue #123887075: Record UsbDevice serial numbers on Windows
  • Data Binding:
  • Issue #141582926: Custom Map Class can not access value in the form of "map.key"
  • Issue #141782215: Incorrect inspection "fragment is not allowed here"
  • Issue #140593256: ViewId in underline format not recognized in databinding expression
  • Issue #141582926: Custom Map Class can not access value in the form of "map.key"
  • Issue #140592807: "var.methodName" should be supported as function references expression
  • Issue #140591412: Format "map.key" not supported in data binding expression
  • Issue #140592852: Can not access fields/methods from static field/method
  • Issue #140593547: Variable "context" not recognized in data binding expression
  • Deployment:
  • Issue #138601449: Save the Select Deployment Targets dialog selection
  • Gradle:
  • Issue #141927977: Constraint reason strings can take too much memory on large projects
  • Issue #112513722: Including navigation graph from different module breaks generating AndroidManifest.xml intent filters for deep links
  • Issue #141670031: Remove use of BuildListener#buildStarted() and Gradle#buildStarted() as they are deprecated in Gradle 6.0
  • Issue #140786113: Corrupt proguard file generated by AGP 3.5.0
  • Issue #136294346: Migrate from ArtifactTransform to TransformAction API
  • Issue #138731075: RenderScript NDK mode not able to emit 64bit bitcode
  • Issue #112513722: Including navigation graph from different module breaks generating AndroidManifest.xml intent filters for deep links
  • Gradle Sync:
  • Issue #141416123: Warnings in gradle sync annoyingly auto-open the file
  • Issue #139821729: AS 3.6 Canary 6 opens a build script after sync
  • Navigation:
  • Issue #140856013: Unexpected element <nav-graph> found in presentation module (clean arch)
  • Project System:
  • Issue #140406172: Android Studio 3.6 Canary 9 freezes on Ubuntu 16.04 LTS
  • Resource Manager:
  • Issue #131976524: Feature Request: Image Asset Wizard, Support Two Lines for Text Option
  • Shrinker (R8):
  • Issue #140851070: Use of R8 applymapping fails with 'already has a mapping'
  • View Binding:
  • Issue #140882631: Incorrect package name for ids
  • Issue #140882627: Ignore fragment references in XML

New in Android Studio 3.5.1 (Oct 3, 2019)

  • This minor update includes various bug fixes and performance improvements.

New in Android Studio 3.6 Canary 12 (Sep 22, 2019)

  • General fixes:
  • This update includes fixes for the following public issues: APK Viewer
  • Issue #137130596: Analyze apk could not be completed.
  • Data Binding:
  • Issue #140645228: Variables declared in other same name layout files are not recognized
  • Issue #139933333: Unresolved binding fields in nested controls
  • Dexer (D8):
  • Issue #140290149: Class module-info is missing a super type. Class file version 53.
  • Editing:
  • Issue #140362782: Files created by templates are not picked up by resource repositories
  • Layout Editor:
  • Issue #140678037: Visualization tab disappears in 3.6 Canary 10
  • Lint:
  • Issue #133465551: Lint 26.5.0-beta02 DefaultLocale triggers on Kotlin's decapitalize method
  • New Project Wizard:
  • Issue #138951281: Create New Module wizard is blocked by Project needs to be converted to androidx.* dependencies
  • Run Debug:
  • Issue #138127703: Misleading DDMS message
  • View Binding:
  • Issue #136103081: <include> inside <merge> is not allowed

New in Android Studio 3.6 Canary 11 (Sep 12, 2019)

  • General fixes:
  • This update includes fixes for the following public issues:
  • Build:
  • Issue #139769925: Gradle composite build causes stack overflow in included build
  • Issue #136242040: Spaces ignored in links to file paths
  • Issue #138131992: Error link do not set editor to correct line and column anymore, only to upper left (1,1)
  • Data Binding:
  • Issue #140509347: PsiModelMethod NPE: var parameterType = getParameter(i, parameterTypes)!! #task
  • Issue #137047493: Track view binding layout numbers
  • Issue #139933333: Unresolved binding fields in nested controls
  • Editing:
  • Issue #137878819: RoomSql Fragment Editor doesn't resolve symbols as the raw files do (triple quotes)
  • Issue #124656558: com.intellij.util.IncorrectOperationException in Alt-Enter
  • Gradle:
  • Issue #139821728: When add ‘android.enableSeparateAnnotationProcessing=true’, processDebugAnnotationsWithJavac task cannot be created
  • Issue #139464147: Update to Gradle 5.6
  • Gradle Sync:
  • Issue #139696602: Links to re-run sync don't terminate the resulting sync correctly
  • Issue #133342563: Exception when checking whether upgrade is possible
  • Lint:
  • Issue #133226746: Lint warning for textAlignment with minSdkVersion of 16
  • Issue #139566120: Lint check showing incorrect warning with TypedArray recycle call
  • Project Structure Dialog:
  • Issue #136389141: buildTypes.each caused an error in project's structure suggestion
  • Project System:
  • Issue #139350627: Data binding: Cannot find identifier when referencing views in XML
  • Issue #131991567: AS prompt generates gradle proxy data exception
  • View Binding:
  • Issue #139411389: Type mismatch when an tag has an id

New in Android Studio 3.6 Canary 10 (Sep 5, 2019)

  • Refactor menu option to enable Instant Apps support:
  • You can now instant-enable your base module at any time after creating your app
  • project as follows:
  • Open the Project panel by selecting View > Tool Windows > Project from the menu bar.
  • Right-click on your base module, typically named ‘app’, and select Refactor > Enable Instant Apps Support.
  • In the dialog that appears, select your base module from the dropdown menu.
  • Click OK.
  • Note: The option to instant-enable your base app module from the Create New Project wizard has been removed.
  • Deobfuscate class and method bytecode in APK Analyzer:
  • When inspecting DEX files, the APK Analyzer now supports deobfuscating class and method bytecode. To deobfuscate the bytecode, proceed as follows:
  • Select Build > Analyze APK from the menu bar.
  • In the dialog that appears, navigate to the APK you want to inspect and select it.
  • Click Open.
  • In the APK Analyzer, select the DEX file you want to inspect.
  • In the DEX file viewer, load the ProGuard mappings file for the APK you’re analyzing.
  • Right-click on the class or method you want to inspect and select Show bytecode.
  • General fixes:
  • This update includes fixes for the following public issues:
  • Core IDE:
  • Issue #139371784: Gradle sync should use --stacktrace by default to assist in diagnosing failures which occur during sync
  • Issue #130738995: Allow disabling the automatic adding of the google repository to build.gradle
  • Gradle:
  • Issue #138042761: Remove pointless log from lint task
  • Gradle Sync:
  • Issue #139481725: Gradle Sync fails with org.jetbrains.kotlin.psi.KtDotQualifiedExpression cannot be cast to org.jetbrains.kotlin.psi.KtStringTemplateExpression
  • Lint:
  • Issue #138832286: AGP 3.5.0-rc02 and 3.6.0-alpha05: Lint doesn't report issues in the Kotlin source set
  • Issue #139769778: Can not resolve symbol for app:constraint_referenced_ids attribute
  • Issue #139822932: VisibleForTesting annotation not linted properly if it uses package private scope as the 'otherwise'
  • Issue #139515660: margin(Horizontal|Vertical) and padding(Horizontal|Vertical) are detected by UnusedAttribute even though they're backported
  • Templates:
  • Issue #123677458: Creating a new project should explicitly set project name in settings.gradle via rootProject.name = "..."
  • View Binding:
  • Issue #137854701: Respect tools:viewBindingIgnore layout attribute
  • Databinding:
  • Issue #133390436: Binding adapter not used when setting propert on an <include> tag

New in Android Studio 3.6 Canary 8 (Aug 27, 2019)

  • General fixes:
  • This update includes fixes for the following public issues: APK Debugging
  • Issue #112411103: APK sometimes getting locked when using 'Profile or Debug APK...'
  • Core IDE:
  • Issue #138841328: ResourceFolderRepository is loading out-of-date cache "entries"
  • Data Binding:
  • Issue #139096339: Invalid red underline for method reference syntax for "View" arg function #task
  • Firebase Test Lab:
  • Issue #139177566: [Studio 3.6 Canary 6] [Firebase TestLab] NPE has observed while testing application on Firebase console.
  • Gradle:
  • Issue #37055147: Support maven-publish plugin
  • Issue #139084022: Change min/max modifiers to from/upto in shrinker rules
  • Gradle C++:
  • Issue #138739739: CMake integration broken in Gradle Plugin 3.6.0-alpha05

New in Android Studio 3.6 Canary 7 (Aug 25, 2019)

  • General fixes:
  • APK Debugging:
  • Issue #112411103: APK sometimes getting locked when using 'Profile or Debug APK...'
  • Build:
  • Issue #138404837: AS 3.6 build variants are not switched to compatible variants automatically
  • C++:
  • Issue #138089120: Rename of native method
  • Core IDE:
  • Issue #138841328: ResourceFolderRepository is loading out-of-date cache "entries"
  • Data Binding:
  • Issue #139096339: Invalid red underline for method reference syntax for "View" arg function #task
  • Issue #127149948: Incorrect highlight error: ` ']' expected, got '(' `
  • Issue #131115695: getter and setter is shown as variable for bindings, clicking getter inserts actual variable
  • Deployment:
  • Issue #136412387: Android studio shows error while launching app when app name contains "Error"
  • Editing:
  • Issue #117112752: "Go to related symbols" not working in Activities and Fragments created with Kotlin
  • Gradle:
  • Issue #137729143: Resources overriding strategy between external and local libraries resources is broken
  • Issue #37055147: Support maven-publish plugin
  • Issue #138920846: Fix input normalization of aidlExecutableProvider in AidlCompile
  • Issue #139084022: Change min/max modifiers to from/upto in shrinker rules
  • Gradle C++:
  • Issue #138739739: CMake integration broken in Gradle Plugin 3.6.0-alpha05
  • Lint:
  • Issue #138132330: "Android XML element is not allowed" Inspection Unaware of for FileProvider
  • Issue #138668379: Bug: Lint check warns about Android-X stuff having typos
  • Project System:
  • Issue #135968300: Android Studio doesn't detect JAVA_HOME correctly
  • Testing:
  • Issue #138120842: Studio doesn't respect testOptions.animationsDisabled

New in Android Studio 3.5 (Aug 21, 2019)

  • Project Marble: System health:
  • This section describes the changes in Android Studio 3.5 that are focused on improving system health.
  • Recommended memory settings:
  • Android Studio now notifies you if it detects that you could improve performance by increasing the maximum amount of RAM that your OS should allocate for Android Studio processes, such as the core IDE, Gradle daemon, and Kotlin daemon. You can either accept the recommended settings by clicking the action link in the notification, or you can adjust these settings manually by selecting File > Settings (or Android Studio > Preferences on macOS), and then finding the Memory Settings section under Appearance & Behavior > System Settings.
  • Memory usage report:
  • Memory problems in Android Studio are sometimes difficult to reproduce and report. To help solve this problem, Android Studio lets you generate a memory usage report by clicking Help > Analyze Memory Usage from the menu bar. When you do so, the IDE locally sanitizes the data for personal information before asking whether you want to send it to the Android Studio team to help identify the source of the memory issues.
  • Project Marble: Feature polish:
  • This section describes the changes in Android Studio 3.5 that are focused on improving existing features.
  • Apply Changes:
  • Apply Changes lets you push code and resource changes to your running app without restarting your app—and, in some cases, without restarting the current activity. Apply Changes implements a completely new approach for preserving your app’s state. Unlike Instant Run, which rewrote the bytecode of your APK, Apply Changes redefines classes on the fly by leveraging the runtime instrumentation supported in Android 8.0 (API level 26) or higher.
  • App deployment flow:
  • The IDE has a new drop-down menu that lets you quickly select which device you'd like to deploy your app to. This menu also includes a new option that lets you run your app on multiple devices at once.
  • Improved Gradle sync and cache detection:
  • The IDE now better detects when Gradle periodically clears your build cache when reducing its hard disk consumption. In previous versions, this state caused the IDE to report missing dependencies and Gradle sync to fail. Now, the IDE simply downloads dependencies as needed to ensure that Gradle sync completes successfully.
  • Improved build error output:
  • The Build Build window icon window now provides better error reporting, such as a link to the file and line of the reported error, for the following build processes:
  • AAPT compilation and linking
  • R8 and ProGuard
  • Dexing
  • Resource merging
  • XML file parsing
  • Javac, Kotlinc, and CMake compilation
  • Project Upgrades:
  • Improved update experience to provide more information and actions to help you update the IDE and the Android Gradle plugin. For example, more sync and build errors include actions to help you mitigate errors when updating.
  • It’s important to keep in mind, you can update the IDE independently of other components, such as the Android Gradle plugin. So, you can safely update the IDE as soon as a newer version is available, and update other components later.
  • Layout Editor:
  • Android Studio 3.5 includes several improvements to layout visualization, management, and interaction.
  • When working with ConstraintLayout, a new Constraints section in the Attributes panel lists the constraints relationships of the selected UI component. You can select a constraint either from the design surface or from the constraints list to highlight the constraint in both areas.
  • Similarly, you can now delete a constraint by selecting it and pressing the Delete key. You can also delete a constraint by holding the Control key (Command on macOS) and clicking on the constraint anchor. Note that when you hold the Control or Command key and hover over an anchor, any associated constraints turn red to indicate that you can click to delete them.
  • When a view is selected, you can create a constraint by clicking on any of the + icons in the Constraint Widget section of the Attributes panel, as shown in the following image. When you create a new constraint, the Layout Editor now selects and highlights the constraint, providing immediate visual feedback for what you've just added.
  • When creating a constraint, the Layout Editor now shows only the eligible anchor points to which you can constrain. Previously, the Layout Editor highlighted all anchor points on all views, regardless of whether you could constrain to them. In addition, a blue overlay now highlights the target of the constraint. This highlighting is particularly useful when attempting to constrain to a component that overlaps with another.
  • In addition to the above updates, Android Studio 3.5 also contains the following Layout Editor improvements:
  • The Constraint Widget and default margin drop-down now allow you to use dimension resources for margins.
  • In the Layout Editor toolbar, the list of devices that determine the size of the design surface has been updated. In addition, snapping behavior while resizing has been improved, and the resizing handles on the design surface are now always visible. When resizing, new overlays appear that show common device sizes.
  • The Layout Editor has a new color scheme that improves consistency and reduces contrast between components, text, and constraints.
  • Blueprint mode now includes text support for some components where text wasn't being shown.
  • Data Binding:
  • In addition to adding incremental annotation processing support for Data Binding, the IDE improves smart editor features and performance when creating data binding expressions in XML.
  • Improved support for C/C++ projects:
  • Android Studio 3.5 includes several changes that improve support for C/C++ projects.
  • Build Variants panel improvements for single variant sync:
  • You can now specify both the active build variant and active ABI in the Build Variants panel. This feature simplifies build configuration per module and can also improve Gradle sync performance.
  • Side-by-side versions of the NDK:
  • You can now use multiple versions of the NDK side-by-side. This feature gives you more flexibility when configuring your projects—for example, if you have projects that use different versions of the NDK on the same machine.
  • If your project uses Android Gradle plugin 3.5.0 or higher, you can also specify the version of the NDK that each module in your project should use. You can use this feature to create reproducible builds and to mitigate incompatibilities between NDK versions and the Android Gradle plugin.
  • Chrome OS Support:
  • Android Studio now officially supports Chrome OS devices, such as the HP Chromebook x360 14, Acer Chromebook 13/Spin 13, and others that you can read about in the system requirements. To get started, download Android Studio on your compatible Chrome OS device and follow the installation instructions.
  • Conditional delivery for dynamic feature modules:
  • Conditional delivery allows you to set certain device configuration requirements for dynamic feature modules to be downloaded automatically during app install. For example, you can configure a dynamic feature module that includes functionality for augmented reality (AR) to be available at app install for only devices that support AR.
  • This delivery mechanism currently supports controlling the download of a module at app install-time based on the following device configurations:
  • Device hardware and software features, including OpenGL ES version
  • User country
  • API level
  • IntelliJ IDEA 2019.1:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2019.1 release, such as theme customization.

New in Android Studio 3.6 Canary 6 (Aug 14, 2019)

  • Binary Intelligence:
  • Issue #137768457: Multiple versions in dependencies.pb file
  • Issue #136567112: Update Gradle so that runtime and package time dependencies are not conflated for dynamic-features
  • Build:
  • Issue #134989020: Android Gradle Plugin 3.6.0-alpha03 assumes ninja binaries next to CMake
  • Issue #138404837: AS 3.6 build variants are not switched to compatible variants automatically
  • Data Binding:
  • Issue #136194613: BR fields no longer generated for @Bindable properties
  • Issue #126775542: Testing with Robolectric 4.0 on DataBinding enabled lib modules will throw `java.lang.NoClassDefFoundError: androidx/databinding/DataBinderMapperImpl`
  • Editing:
  • Issue #131127406: Can not resolve method 'getString(?)'
  • Gradle:
  • Issue #137541112: Add Provider-based API for getting the mapping file
  • Issue #137002718: Publish zipflinger under com.android.tools.build
  • Issue #137488460: java.nio.file.InvalidPathException
  • Issue #135672715: Support targeting rules in JAR/AAR to R8/Proguard versions
  • Gradle C++:
  • Issue #134374003: Android Gradle Plugin: “Expected output file at … for target … but there was none” when CMakeLists defines object libraries
  • Kotlin:
  • Issue #66890777: Bug: no quick-fix for missing "when" cases (the equivalant to "switch-case" in Java)
  • Layout Editor:
  • Issue #135367227: "Clear All Constraints" button does not clear constraints
  • Lint:
  • Issue #131114390: Bug: quick-fix of adding permission check doesn't do anything
  • Issue #137035119: GradleModelMocker persists across lint invocations during tests causing an assertion to fail
  • Project Structure Dialog:
  • Issue #134442868: PSD does not show hierarchical view of modules
  • Project System:
  • Issue #137949567: Extra space or font alignment problem in gradle sync message
  • Shrinker (R8):
  • Issue #131572129: Provide per-variant R8 printusage and printseed output
  • Testing:
  • Issue #37132226: [AS 2.3] Missing extra runner parameters field in Run Configuration for Android Instrumentation Tests
  • Issue #113305007: Android instrumented test never starts in debugging mode.

New in Android Studio 3.5 RC3 (Aug 8, 2019)

  • General fixes:
  • This update includes fixes for the following public issues: Binary Intelligence
  • Issue #137768457: Multiple versions in dependencies.pb file
  • Gradle:
  • Issue #137729143: Resources overriding strategy between external and local libraries resources is broken
  • Gradle Sync:
  • Issue #135201784: Studio 3.5 Beta 4 freezes while loading AndroidX project
  • Lint:
  • Issue #133377376: Android studio ide freezes
  • Shrinker (R8):
  • Issue #132897042: NullPointerException in R8 Following Control Flow Obfuscation
  • Issue #138044583: R8 compat mode removes unused constructor
  • Issue #135172146: R8 fails with "Undefined value encountered during compilation"
  • Issue #138668220: R8 fails when excuting task ":wallet:transformClassesAndResourcesWithR8ForRelease"

New in Android Studio 3.5 RC2 (Aug 1, 2019)

  • General fixes:
  • This update includes fixes for the following public issues:
  • AndroidX:
  • Issue #137277710: Update mappings to match https://developer.android.com/jetpack/androidx/migrate
  • Issue #137073253: Missing exoplayer migration rule in "Migrate to AndroidX"
  • Apply Changes:
  • Issue #137795791: Exception during delta push: java.io.IOException: write failed: EBADF (Bad file descriptor)
  • Core IDE
  • Issue #130315019: StackOverflowError in XmlUtils
  • Dexer (D8)
  • Issue #136717060: Support JDK Math library JDK tests
  • Gradle:
  • Issue #135665414: Aapt exception points to AndroidManifest by mistake
  • Issue #136987001: Resource error message rewritting not working properly since 3.5.0-alpha09
  • Issue #137768457: Multiple versions in dependencies.pb file
  • Issue #130596259: MissingResourceException: Can't find bundle for base name org.jacoco.core.jacoco
  • Gradle Sync:
  • Issue #137160057: Internal sync error when syncing androidx project in Studio 3.5 Beta 5
  • Jetifier:
  • Issue #133770823: "Migrate to AndroidX" doesn't migrate WorkManager
  • Metrics:
  • Issue #137662411: do not repeat satisfaction dialog upon user cancel
  • Project System:
  • Issue #134174287: Exception report: kotlin.KotlinNullPointerException at com.android.tools.idea.gradle.structure.navigation.PsBuildVariantsNavigationPath.queryPlace-ed807e05
  • Resource Management:
  • Issue #137013090: Tabbed Pane has a background glitch in Linux
  • Shrinker (R8):
  • Issue #135627418: Gradle Plugin 3.4.1 crashes app on Android 5 devices with Verifier rejected class due to bad method
  • Issue #119626580: Two phases in Class staticizer are seeing different IR code.
  • Issue #138044583: R8 compat mode removes unused constructor
  • Issue #136195382: java.lang.IllegalAccessError after shrinking code with R8 shrinker wrong method is called
  • Issue #132897042: NullPointerException in R8 Following Control Flow Obfuscation
  • Issue #137484867: Converting method to return void does not take local info into account
  • Issue #136697156: R8 fails with "Attempt to define local of type int as moduleSize" (new in AS 3.5-beta05)
  • Issue #135172146: R8 fails with "Undefined value encountered during compilation"
  • Issue #136636007: Remove all .kotlin_metadata from r8 jars

New in Android Studio 3.6 Canary 5 (Jul 29, 2019)

  • Core IDE:
  • Issue #135132378: "Generate Signed Bundle or APK" => "Module" list order problem
  • Data Binding:
  • Issue #135147332: Make sure "safeUnbox" doesn't show an "unresolved reference" error
  • Gradle:
  • Issue #133092984: DataBinding modules cause MergeDebugResources to run
  • Issue #131659806: Databinding-generated classes have non-deterministic ordering, defeating gradle's remote build cache
  • Issue #134766811: Gradle plugin 3.6.0-alpha02 with removeUnusedResources causes app to crash on start
  • Issue #130363042: Gradle should guarantee delivery of error messages
  • Issue #130740393: Error running unit tests in Android Studio 3.4
  • Issue #133727918: Pass AAPT generated main dex list rules to R8
  • Issue #68759476: ExtractAnnotations is not relocatable
  • Issue #135665414: Aapt exception points to AndroidManifest by mistake
  • Issue #133354240: The Android Gradle plugin should not extend the JavaCompile task
  • Kotlin:
  • Issue #128835109: resources.srcDirs = ['src'] option in gradle leakes .kt source code in artifact (APK)
  • Layout Editor:
  • Issue #134801179: Bug : Layout Editor shapeAppearenceOverlay attribute
  • Lint:
  • Issue #126221824: Enforce RestrictTo(LIBRARY_GROUP) when the API is defined in another project
  • Issue #68398926: Add an option to specify group and artifactId for lint
  • Issue #135275901: "LambdaLast" check probably shouldn't apply to Executor
  • Issue #132668553: Custom view Lint
  • Issue #134237547: UnknownNullness should run on Kotlin sources and detect platform type propagation
  • Issue #135681813: vector drawable compat error message needs more info
  • New Project Wizard:
  • Issue #135761384: Bad ExampleInstrumentedTest file created
  • Project System:
  • Issue #129994596: IllegalStateException: buildOutput.apkData must not be null when building with obfuscation [3.4.0-rc03]
  • Issue #129612500: Opening 2nd Project causes Indefinite display of "Indexing paused due to batch update"

New in Android Studio 3.4.2 (Jul 10, 2019)

  • This minor release improves stability and performance, and includes fixes for the following issues:
  • Gradle
  • Issue #131167099: Gradle Sync error: No value has been specified for property 'manifestOutputDirectory'.
  • IntelliJ
  • Issue #124680708: Git Push Crashes from IDE
  • Shrinker (R8)
  • Issue #131167099: Gradle Sync error: No value has been specified for property manifestOutputDirectory'.
  • Issue #131140696: AbortException: Error: Undefined value encountered during compilation.
  • Issue #131207184: Android Studio 3.5 Canary 13 - Undefined value encountered during compilation, invalid dex input
  • Issue #130789358: java.lang.IllegalArgumentException: Multiple entries with same key
  • Issue #131443760: Android Gradle Plugin 3.5.0-alpha13 fails with R8 1.5.20-dev (build a85ccd499f6d149322870a8aedddc92152071a01
  • Issue #131505760: R8 don't support obfuscationdictionary on field

New in Android Studio 3.6 Canary 3 (Jun 12, 2019)

  • Fixed crash in headless mode.
  • Added metrics reporting to multi-display feature.

New in Android Studio 3.5 Beta 4 (Jun 7, 2019)

  • Build:
  • Issue #131271062: Gradle sync error "Conversion = 'F'"
  • Deployment:
  • Issue #133403822: Unable to re-install APK from Studio 3.5 Beta 1
  • Dexer (D8):
  • Issue #118842646: Ability to selectively suppress warnings during D8 desugaring
  • Gradle:
  • Issue #130917947: App dependencies incorrectly bundled in test apk when targeting Java 8
  • Issue #133394180: Do not pass classpath to D8 if minSdkVersion is 24+
  • Shrinker (R8):
  • Issue #133379765: cannot be cast to kotlin.jvm.functions.Function1
  • Issue #129493704: Not honoring -dontusemixedcaseclassnames flag
  • Issue #133167042: com.android.tools.r8.errors.Unreachable: com.android.tools.r8.errors.Unreachable: DexItemBasedConstString instructions should always be rewritten into ConstString

New in Android Studio 3.6 Canary 2 (May 30, 2019)

  • General fixes:
  • This update includes fixes for the following public issues: Android App Bundles
  • Issue #132721337: Remove warning when using gradle property enableUncompressedNativeLibs
  • Compilers:
  • Issue #130965921: java.lang.ClassNotFoundException in ART ( API > 21 )
  • Gradle:
  • Issue #110061530: Build plugin prevent to use incremental compilation when Data Binding is enabled
  • Issue #132880111: BuildElements is not OS agnostic.
  • Issue #130917947: App dependencies incorrectly bundled in test apk when targeting Java 8
  • Issue #130531986: Support Lombok and Error Prone when annotation processing is performed by a separate task
  • Issue #132813062: Mutlitple producers of CODE_COVERAGE when having more than one device provider.
  • Kotlin:
  • Issue #128851036: Can't refactor class
  • Layout Editor:
  • Issue #131816250: Bug: Resource picker blocked by Mac scrollbar
  • Navigation Editor:
  • Issue #133255172: Enum and Resource Reference types can incorrectly be made into arrays
  • Issue #133253598: Enum arguments can incorrectly be set to nullable
  • Project Structure Dialog:
  • Issue #131225073: Flavor dimensions are not fetched from the resolved model.
  • Project System:
  • Issue #130138336: Editor not seeing proper classpaths
  • SDK Manager:
  • Issue #132473200: Nothing big/ worrysome. i have updated my sdk packages completely but still it shows partially installed Q package and Androuid studio splash screen has graphics glitch with the loading bar
  • Shrinker (R8):
  • Issue #131349148: Dalvik : java.lang.VerifyError

New in Android Studio 3.6 Canary 1 (May 24, 2019)

  • Android Studio UI:
  • Issue #129264179 Cannot run tests from included builds from IDE
  • APK Viewer:
  • Issue #127956589 APK Analyzer returns "?" instead of valid version name after upgrade to 3.3.2
  • App Development:
  • Issue #37075681 screenshot2 Tool NullPointerException on Linux
  • AVD Manager:
  • Issue #116873929 CPU/ABI column in AVD Manager truncates text longer than 3 characters (x86-64) and is not resizable
  • Build:
  • Issue #131271062 Gradle sync error "Conversion = 'F'"
  • C++:
  • Issue #132348328 C++ opening includes node never completes
  • Core IDE:
  • Issue #129091225 Android Drawable Importer has wrong res dir path when import vector:
  • Issue #127132288 New vector asset action does not work
  • Issue #130040636 onClick method generator from xml not working
  • Issue #118487169 Started crashing on startup (corrupt JSON file in ~/.AndroidStudio3.2)
  • Data Binding:
  • Issue #131889243 Studio 3.5 deadlock (Kotlin resolve + databinding)
  • Issue #131435650 Completion suggestions should include imported types
  • Issue #129501142 code completion put cursor in method parens when completing functions
  • Issue #129497691 code completion support completion for java.lang classes
  • Deployment:
  • Issue #130042035 UnsatisfiedLinkError
  • Issue #128208663 AS 3.5 Canary 6 Attempted app downgrades are not detected
  • Issue #122936785 Databinding does not work with com.android.tools.buildgradle3.4.0-beta01
  • Design Tools:
  • Issue #129801143 Request always choose correct size when importing an SVG to be converted into VectorDrawable
  • Editing:
  • Issue #129323345 Code Formatting changes the order of components in Layout hierarchy
  • Issue #119606996 Studio SQL name resolver fails on a valid query
  • Issue #69240105 Missing support for complicated WITH clauses in Room queries
  • Gradle:
  • Issue #119234600 GradlePropertyModelImpl IllegalStateException Duplicate key 1.1.5
  • Issue #131393499 Update to Gradle 5.4.1
  • Issue #131204372 Main dex list is empty with dynamic features and Proguard
  • Issue #131114388 R8 - D8 FIrebase performance plugin - Caused by com.android.tools.r8.utils.AbortException Error program input module-info.class', Unsupported source file type
  • Issue #118363127 Improve Application packaging performance
  • Issue #126874329 Turkish Letters Bug
  • Issue #127691661 APK for minSdkVersion=M+, so files should not be compressed by default.
  • Gradle Sync:
  • Issue #124680713 NewGradleSyncNotSupportedException when trying to Gradle Sync
  • Issue #129261435 Android syncing hangs if distributionSha256Sum mismatches after upgrade
  • Issue #123098107 Gradle got error
  • Issue #127848590 Cached sync Crashes if a project is moved/renamed
  • IntelliJ:
  • Issue #130580475 Code Style gone from preferences
  • Issue #124680708 Git Push Crashes from IDE
  • Issue #113304627 Graphical artifact in loading screen
  • Layout Editor:
  • Issue #130984780 Android Studio hangs when adding an ImageView to a layout
  • Issue #129926965 Adding button breaks Layout builder
  • Issue #128275926 Scrolling in the Attributes pane is far too aggressive
  • Lint
  • Issue #124466808 IconExpectedSize triggered on icon that was generated from Android Studio
  • Issue #129985008 DuplicateResourceDetector throws StringIndexOutOfBoundsException with " " in strings.xml
  • Issue #131073349 Lint fails to add all densities/orientations of a resource to baseline, then fails on subsequent runs
  • Issue #130892328 False positive DrawAllocation
  • New Project Wizard:
  • Issue #130169021 New library modules generated in Android Studio do not set consumerProguardFiles in the gradle script
  • Project Structure Dialog
  • Issue #131468843 PSD reports "release" build as missing if it is not explicitly declared
  • Issue #131481330 PSD does not reload errors.suggesting when receives additional data from Gradle
  • Project System:
  • Issue #130226195 Warning when opening KTS-based project
  • Issue #131210383 Cannot resolve symbol BuildConfig on 3.5 Canary 13
  • Issue #123677461 Android Gradle Plugin Update adds extra google() repository when doing repository configuration
  • Run Debug:
  • Issue #131170197 Detect and warn if debugging an app that is not "debuggable"
  • Shrinker (R8):
  • Issue #131349148 Dalvik java.lang.VerifyError

New in Android Studio 3.5 Beta 2 (May 20, 2019)

  • Updates the Android Gradle plugin to using Gradle 5.4.1
  • R8 - D8 FIrebase performance plugin - Caused by: com.android.tools.r8.utils.AbortException: Error: program input module-info.class', Unsupported source file type
  • Main dex list is empty with dynamic features and Proguard
  • java.lang.IllegalAccessError: Illegal class access
  • Android Stuido 3.4 R8 proguard assumenosideeffects
  • Android Studio 3.5 Canary 13 - NullPointerException in com.android.tools.r8.naming.ClassNameMinifier
  • Request: always choose correct size when importing an SVG to be converted into VectorDrawable
  • Adding button breaks Layout builder
  • Code Formatting changes the order of <include> components in Layout hierarchy
  • Code Style gone from preferences
  • Cannot resolve symbol BuildConfig on 3.5 Canary 13
  • Warning when opening KTS-based project
  • PSD reports "release" build as missing if it is not explicitly declared
  • PSD does not reload errors.suggesting when receives additional data from Gradle

New in Android Studio 3.4.1 (May 16, 2019)

  • This minor release improves stability and performance, and includes fixes for the following issues:
  • Data Binding:
  • Issue #122464849: DataBinding - Layout "class" attribute in "data" tag throws error
  • Issue #122936785: Databinding does not work with com.android.tools.build:gradle:3.4.0-beta01
  • Issue #122066788: NullpointerException in android.databinding.ViewDataBinding
  • Dexer (D8):
  • Issue #129362492: Studio 3.4 RC2 appears to ignore Java compatibility level for non-debug build variants, will not deploy app
  • Issue #129730297: Java 8 methods of java.lang.Long and java.lang.Character are not desugared by D8
  • Issue #129901036: NPE on workaroundExceptionTargetingLoopHeaderBug
  • Editing:
  • Issue #128579793: Cannot resolve symbol problem in XML in AS 3.4 RC 1
  • Gradle:
  • Issue #129145240: Unable to use Proguard from DSL
  • Layout Editor:
  • Issue #123222832: CardView render fail in Android Studio 3.3
  • Shrinker (R8):
  • Issue #128987064: calling class mis-attributed leading to illegal invoke-super
  • Issue #127932803: Extra rules needs to be added for keeping library dependency (slf4j) when using R8
  • Issue #130135768: The "keeppackagenames" rule does not work.
  • Issue #129410384: VerifyError: register has type Reference Object[] but expected Reference Parcelable[]
  • Issue #129935705: Make warnings for -optimizationpasses and -optimizations info

New in Android Studio 3.5 Beta 1 (May 8, 2019)

  • General fixes:
  • This update includes fixes for the following public issues:
  • APK Viewer:
  • Issue #127956589: APK Analyzer returns "?" instead of valid version name after upgrade to 3.3.2
  • Core IDE:
  • Issue #129091225: Android Drawable Importer has wrong res dir path when import vector
  • Issue #129264179: Cannot run tests from included builds from IDE
  • Data Binding:
  • Issue #129497691: code completion: support completion for java.lang classes
  • Databinding:
  • Issue #122936785: Databinding does not work with com.android.tools.build:gradle:3.4.0-beta01
  • Deployment:
  • Issue #128208663: AS 3.5 Canary 6: Attempted app downgrades are not detected
  • Gradle:
  • Issue #126874329: Turkish Letters Bug
  • Gradle Sync:
  • Issue #127848590: Cached sync: Crashes if a project is moved/renamed
  • New Project Wizard:
  • Issue #130169021: New library modules generated in Android Studio do not set consumerProguardFiles in the gradle script

New in Android Studio 3.5 Canary 13 (Apr 25, 2019)

  • Known issues:
  • Due to a bug in 3.5 Canary 8, no patches are available from that version to any other. If you are using Canary 8 and want to upgrade, please download the IDE. We apologize for any inconvenience.
  • General fixes:
  • This update includes fixes for the following public issues:
  • Android Studio UI:
  • Issue #124025065: Icon selection window improvements
  • Core IDE:
  • Issue #128271323: Can't open AVD manager from the landing window (when there are no open projects)
  • Issue #130166128: Reduce usage of VirtualFile.getFileType in PsiProjectListener
  • Issue #130166139: Clean up PsiProjectListener.isRelevantFile and AndroidResourceFilesListener.shouldScheduleUpdate
  • Data Binding:
  • Issue #122464849: DataBinding - Layout "class" attribute in "data" tag throws error
  • Issue #117607324: xml code completion does not recognize Observable / LiveData
  • Issue #119645762: DataBinding fails for transitive deps.
  • Deployment:
  • Issue #130168866: New deployment flow with identical devices should show serial numbers
  • Issue #129078765: Investigate why fixConfigurationsMissingBeforeRunTask can fail
  • Gradle:
  • Issue #129758703: Deprecate useProguard in DSL
  • Issue #130296666: BooleanOption warnings (experimental/deprecated) should be only displayed once
  • Kotlin:
  • Issue #121022032: Separate test scopes are broken in Kotln
  • Project System:
  • Issue #130053180: PSD shouldn't suggest upgrading from stable library to unstable library

New in Android Studio 3.5 Canary 12 (Apr 18, 2019)

  • useProGuard Android Gradle plugin setting deprecated
  • When using Android Gradle plugin 3.5.0-alpha12 and higher, the build system no longer respects the useProguard property to determine which code shrinker you want to use. By default, the Android Studio build system uses the R8 compiler to shrink, obfuscate, and optimize your code. However, if you’d like to instead use ProGuard, include the following property in your gradle.properties file:
  • # Include this flag only if you want to use ProGuard instead of R8
  • # to shrink your code.
  • android.enableR8 = false
  • Known issues:
  • Due to a bug in 3.5 Canary 8, no patches are available from that version to any other. If you are using Canary 8 and want to upgrade, please download the IDE. We apologize for any inconvenience.
  • General fixes
  • This update includes fixes for the following public issues: Android Studio UI
  • Issue #111960180: Android Studio hangs in UI thread (loading Android SDK)
  • C++ Sync:
  • Issue #122875116: Build variants are generated for every ABI though not supposed to
  • Core IDE:
  • Issue #123271590: Remove AndroidResourceFileListener
  • Issue #130029005: possible bug in com.android.ide.common.resources.DataItem
  • Data Binding:
  • Issue #37150098: Android Studio shows warning: Element merge is not allowed here
  • Editing:
  • Issue #129323345: Code Formatting changes the order of components in Layout hierarchy
  • Gradle:
  • Issue #125696148: Build error when referencing Kotlin Multi Platform module in the project with Dynamic feature module
  • Issue #129319471: Sync error: Variant must exist
  • Issue #129910310: Dex merging task may ignore bytecode produced using Variant API:
  • Issue #125166026: Feature plugin doesn't always generate R.txt file in Gradle Build Plugin 3.3.*
  • Gradle Sync:
  • Issue #123557209: "Skip source generation on Gradle sync" should be respected when cleaning the project
  • Navigation Editor:
  • Issue #127905301: Subclasses of NavHostFragment are not displayed in the destination tab as hosts
  • Project System:
  • Issue #123032843: IDE integration with the Gradle buildSrc module is broken in Android Studio 3.3
  • Issue #118392606: Unresolved buildSrc objects starting with 3.3
  • Test Support:
  • Issue #123892382: Running UI tests with wrong buildType fails with unclear error

New in Android Studio 3.4 (Apr 17, 2019)

  • Known issues:
  • Profiling is disabled when deploying your app to a device running Android Q Beta.
  • When using the Data Binding Library, LiveDataListener.onChanged() might fail with a NPE. A fix for this issue will be included in Android Studio 3.4.1 and is already available in the latest Preview version of Android Studio 3.5. (See issue #122066788)
  • IntelliJ IDEA 2018.3.4
  • Android Gradle plugin 3.4.0 updates
  • New Project Structure Dialog:
  • The new Project Structure Dialog (PSD) makes it easier to update dependencies and configure different aspects of your project, such as modules, build variants, signing configurations, and build variables.
  • You can open the PSD by selecting File > Project Structure from the menu bar. You can also open the PSD by pressing Ctrl+Shift+Alt+S on Windows and Linux, or Command+; (semicolon) on macOS. You can find descriptions of some of the new and updated sections of the PSD below.
  • Variables:
  • The new variables section of the PSD allows you to create and manage build variables, such as those to keep version numbers for dependencies consistent across your project.
  • Quickly view and edit build variables that already exist in your project’s Gradle build scripts.
  • Add new build variables at a project- or module-level directly from the PSD.
  • Modules:
  • Configure properties that are applied to all build variants in an existing module or add new modules to your project from the Modules section. For example, this is where you can configure defaultConfig properties or manage signing configurations.
  • Dependencies:
  • Inspect and visualize each dependency in the dependency graph of your project, as resolved by Gradle during project sync, by following these steps:
  • In the left pane of the PSD, select Dependencies.
  • In the Modules pane, select a module for which you’d like to inspect the resolved dependencies.
  • On the right side of the PSD, open the Resolved Dependencies pane, which is shown below.
  • You can also quickly search for and add dependencies to your project by first selecting a module from the Dependencies section of the PSD, clicking the (+) button in the Declared Dependencies section, and selecting the type of dependency you want to add.
  • Depending on the type of dependency you select, you should see a dialog, similar to the one below, that helps you add the dependency to the module.
  • Build Variants:
  • In this section of the PSD, create and configure build variants and product flavors for each module in your project. You can add manifest placeholders, add ProGuard files, and assign signing keys, and more.
  • Suggestions:
  • See suggested updates for project dependencies and build variables in the Suggestions section, as shown below.
  • New Resource Manager:
  • Resource Manager is a new tool window for importing, creating, managing, and using resources in your app. You can open the tool window by selecting View > Tool Windows > Resource Manager from the menu bar. The Resource Manager allows you to do the following:
  • Visualize resources: You can preview drawables, colors, and layouts to quickly find the resources you need.
  • Bulk import: You can import multiple drawable assets at once by either dragging and dropping them into the Resource Manager tool window or by using the Import drawables wizard. To access the wizard, select the (+) button at the top-left corner of the tool window, and then select Import Drawables from the drop down menu.
  • Convert SVGs into VectorDrawable objects: You can use the Import Drawables wizard to convert your SVG images into VectorDrawable objects.
  • Drag and drop assets: From the Resource Manager tool window, you can drag and drop drawables onto both the design and XML views of the Layout Editor.
  • View alternative versions: You can now view alternative versions of your resources by double-clicking a resource within the Tool window. This view shows the different versions you have created and the qualifiers that were included.
  • Tile and list views: You can change the view within the tool window to visualize your resources in different arrangements.
  • Checking build IDs when profiling and debugging APKs:
  • When you provide debugging symbol files for the .so shared libraries inside your APK, Android Studio verifies that the build ID of the provided symbol files match the build ID of the .so libraries inside the APK.
  • If you build the native libraries in your APK with a build ID, Android Studio checks whether the build ID in your symbol files matches the build ID in your native libraries and rejects the symbol files if there is a mismatch. If you did not build with a build ID, then providing incorrect symbol files may cause problems with debugging.
  • R8 enabled by default:
  • R8 integrates desugaring, shrinking, obfuscating, optimizing, and dexing all in one step—resulting in noticeable build performance improvements. R8 was introduced in Android Gradle plugin 3.3.0 and is now enabled by default for both app and Android library projects using plugin 3.4.0 and higher.
  • Now, with R8, desugaring, shrinking, obfuscating, optimizing, and dexing (D8) are all completed in one step, as illustrated below.
  • With R8, desugaring, shrinking, obfuscating, optimizing, and dexing are all performed in a single compile step.
  • Keep in mind, R8 is designed to work with your existing ProGuard rules, so you’ll likely not need to take any actions to benefit from R8. However, because it’s a different technology to ProGuard that’s designed specifically for Android projects, shrinking and optimization may result in removing code that ProGuard may have not. So, in this unlikely situation, you might need to add additional rules to keep that code in your build output.
  • Navigation Editor now supports all argument types:
  • All argument types supported by the Navigation component are now supported in the Navigation Editor. For more information on supported types, see Pass data between destinations.
  • Layout Editor improvements:
  • The Attributes pane in the Layout Editor has been streamlined into a single page with sections you can expand to reveal attributes you can configure. The Attributes pane also includes the following updates:
  • A new Declared Attributes section lists the attributes the layout file specifies and allows you to quickly add new ones.
  • The Attributes pane now also features indicators next to each attribute that are solid when the attribute's value is a resource reference and empty otherwise.
  • Attributes with errors or warnings are now highlighted. Red highlights indicate errors (for example, when you use invalid layout values) and orange highlights indicate warnings (for example, when you use hard-coded values).
  • New intention action to quickly import dependencies:
  • If you start using certain Jetpack and Firebase classes in your code, a new intention action suggests adding the required Gradle library dependency to your project, if you haven’t already done so. For example, if you reference the WorkManager class without first importing the required android.arch.work:work-runtime dependency, an intention action lets you do so easily in a single click, as shown below.
  • In particular, because Jetpack repackaged the support library into discrete packages that are easier to manage and update, this intention action helps you quickly add only the dependencies you need for the Jetpack components you want to use.

New in Android Studio 3.5 Canary 11 (Apr 16, 2019)

  • General fixes:
  • This update includes fixes for the following public issues:
  • AVD Manager:
  • Issue #129338679: AVD managers suggests internal storage size way too big
  • Issue #123531078: Inconsistent navigation behavior from generated binding object between Java and Kotlin Project
  • Issue #129092517: Add lint error for missing kapt plugin in build.gradle.kts files
  • Data Binding:
  • Issue #123379503: Changing element in does not change binding for kotlin files until Rebuild project.
  • Debugger:
  • Issue #128579793: Cannot resolve symbol problem in XML in AS 3.4 RC 1
  • Editing:
  • Issue #123863053: Debugger fails to install / act on PC for a given line.

New in Android Studio 3.5 Canary 10 (Apr 13, 2019)

  • Data Binding:
  • Issue #129157264: Finding references in XML data binding expressions from Java not working
  • Issue #128643036: clicking on error does not navigate to file
  • Issue #120561619: Data binding is breaking code coverage on AS 3.3 RC 1
  • Issue #129093274: Add kapt lint for new plugin {} syntax
  • Debugger:
  • Issue #127623509: Android Studio exception when attaching to process for debugging
  • Deployment:
  • Issue #123461157: Run configuration doesn't remember last played emulator selection with drop down menu
  • Issue #122956093: Run keystroke (^R) doesn't work if the Navigation Bar is turned off
  • Gradle:
  • Issue #120429381: Pixelbprobe test fail on Windows.
  • Kotlin:
  • Issue #129260858: Android Studio 3.5 Canary 8 - Build Failed - Project Sync Failed
  • Lint:
  • Issue #127955232: Unexpected failure during lint analysis - NullPointerException
  • Resource Management:
  • Issue #124321895: Android Studio Import Drawable should rename imported drawable as per naming conventions
  • Testing:
  • Issue #115421146: Wrong classpath order when running JVM tests

New in Android Studio 3.4 RC 3 (Apr 1, 2019)

  • General fixes:
  • This update includes fixes for the following public issues: Core IDE
  • Issue #124468305: $VERSION isn't resolved in Android Studio 3.4.0-beta04
  • Gradle:
  • Issue #123899777: Implementation transitive deps not available in runtime CP—AS 3.5 Canary 3
  • Layout Editor:
  • Issue #123121798: AS 3.4 B1 Freezes
  • Project System:
  • Issue #117642376: Running unit tests through Android Studio 3.2.1 does not work when class has certain dependencies
  • Shrinker (R8):
  • Issue #128468335: Double check requirement for quotation of -repackageclasses and -flattenpackagehierarchy
  • Issue #128327089: Changing proguardFiles does not trigger recompilation when running tinstrumented est
  • Issue #128813358: R8 failed with an NPE exception on r8.shaking.Enqueuer.enqueueHolderIfDependentNonStaticMember
  • Issue #128917897: AbstractMethodError after updating from Android Gradle Plugin 3.3.2 to 3.4.0-rc02

New in Android Studio 3.5 Canary 9 (Mar 29, 2019)

  • Build:
  • Issue #119713179: Android Studio CMake server does not show
  • Gradle:
  • Issue #123899777: Implementation transitive deps not available in runtime CP—AS 3.5 Canary 3
  • Issue #121257364: Download javadoc jar regardless of sources jar availability.
  • Issue #120098460: Roboelectric does not support Windows well.
  • Issue #124858507: PackgagingOptions are not applied when building minified AAR
  • Layout Editor:
  • Issue #110765629: Switching to code view when moving around in design view
  • Project System:
  • Issue #117642376: Running unit tests through Android Studio 3.2.1 does not work when class has certain dependencies
  • Project View:
  • Issue #118331259: Source files of Kotlin multiplatform modules are not shown in `Android` project view
  • Issue #128376513: Bug: no preview for a simple circle shape
  • Resource Management:
  • Issue #128417956: [Accessibility] Missing tooltip/accessible text on some button

New in Android Studio 3.5 Canary 8 (Mar 26, 2019)

  • This update includes fixes for the following public issues:
  • APK Viewer:
  • Issue #78248278: Display version number on Analyze APK screen
  • Build:
  • Issue #123895238: Execution failed for task ':app:generateJsonModelDebug' Format specifier '%s'
  • Core IDE:
  • Issue #123216329: [Studio 3.4 beta 3] Alternative resources are not renamed
  • Issue #123213449: PsiResourceItem name is not updated when file name changes
  • Data Binding:
  • Issue #124763193: Refactoring method name doesn't work
  • Issue #126379508: BR can't be found without fully qualified name
  • Issue #123773749: Data binding expression highlighting doesn't work when set to custom attributes
  • Issue #120277395: AndroidX compilation failure: "cannot generate view binders: Stream closed"
  • Debugger:
  • Issue #124121862: Unable to set breakpoints / step through code
  • Gradle
  • Issue #124208289: Android Studio includes all densities and ABIs when deploying to a device
  • Issue #123303852: BuildConfig.APPLICATION_IS is confusing in library module
  • Issue #124235144: Reading META-INF/proguard files that are not inside .aars or .jars
  • Issue #117869443: Disallow manual split="foo" in dynamic feature manifests
  • Gradle Sync:
  • Issue #127647973: Project does not work correctly after removing the gradle cache
  • Issue #127776612: Cached sync does not complete with failure if crashes
  • Layout Editor
  • Issue #128284728: [PropertyPanel] Typing a value moves the caret randomly and throw a out of bound exception
  • Lint:
  • Issue #124274575: @CallSuper in Java8 Interface with default implementation for method issue
  • Navigation Editor:
  • Issue #124356535: NPE in NavigationSchema
  • New Project Wizard:
  • Issue #127210786: Incorrect mParentActivity Type via Master/Detail Activity Wizard
  • Issue #123128650: New Module Wizard Should Offer Kotlin Support
  • Profilers
  • Issue #125166472: Cannot open trace files generated with Debug.startMethodTracing in Android Studio
  • Run Debug:
  • Issue #77842190: UI freezes when running Wear project on a watch

New in Android Studio 3.4 RC 2 (Mar 14, 2019)

  • Build:
  • Issue #123895238: Execution failed for task ':app:generateJsonModelDebug' Format specifier '%s'
  • Shrinker (R8):
  • Issue #127691114: R8 is incompatible with library android-retrostreams
  • Issue #126592786: Incorrectly removing refrenced class
  • Issue #126871526: New bots cannot archive
  • Issue #128387933: Missing class when using ORMLite with custom persister class
  • Issue #126443924: transformClassesAndResourcesWithR8 failed java.lang.IllegalStateException
  • Core IDE:
  • Issue #127878116: Updating from 3.4-BETA5 to 3.4-RC1 couldn't import previous configuration
  • Data Binding:
  • Issue #120277395: AndroidX compilation failure: "cannot generate view binders: Stream closed"
  • Layout Editor:
  • Issue #124232637: Property Panel: false negative error shown for listitem
  • Issue #124254043: RecyclerView tools attributes are not available during completions
  • New Project Wizard:
  • Issue #127210786: Incorrect mParentActivity Type via Master/Detail Activity Wizard
  • Gradle Sync:
  • Issue #127776612: Cached sync does not complete with failure if crashes

New in Android Studio 3.5 Canary 7 (Mar 12, 2019)

  • This update includes fixes for the following public issues:
  • Issue #116699306: Illegal character '-' in module name
  • Issue #121288180: The databinding annotation processor is injecting an absolute path into KotlinCompile (and maybe AndroidJavaCompile?), which defauts Gradle's remote build cache
  • Issue #67575899: Impossible to specify more than 255 file extensions for aaptOptions noCompress
  • Issue #123423125: AAPT2 crashes if plurals in xml contain an apostrophe
  • Issue #120898718: SVG with subpaths beginning with 'm' commands fails to convert properly
  • Issue #119517432: Exception on BR class completion from Java
  • Issue #119876558: Data binding, layout, TextView android:text, expression language, common feature, comparison lesser than '<' produces error message.
  • Issue #124763193: Refactoring method name doesn't work
  • Issue #122698932: Layout preview rerenders too often when typing in the XML editor
  • Issue #126165767: DDMLIB process uses a full CPU core even when no device / emulator is connected
  • Issue #112456379: Kotlin main classes appear on the class path before test classes when running unit tests
  • Issue #125432826: ConstraintLayout complains about missing constraints
  • Issue #123377224: Run/Debug Configuration dialog's Deployment Target Options drop-down combo box always resets to "Use the device/snapshot drop down" option

New in Android Studio 3.4 RC 1 (Mar 7, 2019)

  • Issue #67575899: Impossible to specify more than 255 file extensions for aaptOptions noCompress
  • Issue #124471103: lint.jar does not show up in packaged AAR libraries when using lintPublish
  • Issue #123423125: AAPT2 crashes if plurals in xml contain an apostrophe
  • Issue #124437190: Artifact collection during MergeResources task can take very long for sufficiently large dependency graphs.
  • Issue #115687654: AGP 3.2.0-rc03 Spurious build failure: Comparison method violates its general contract!
  • Issue #111056281: AAPT2 does not disable versioning of ObjectAnimator resources referenced in animated vector drawables
  • Issue #126273993: Dexer generates illegal move instructions assiging integers to doubles
  • Issue #123068053: D8 produces incorrect debug information for lambda desugaring.
  • Issue #124655989: Use of -whyareyoukeeping causes R8 compilation to fail
  • Issue #126592786: Incorrectly removing refrenced class
  • Issue #126871526: New bots cannot archive
  • Issue #124357885: Vertical class merging is not updating @dalvik.annotation.Signature value.
  • Issue #113374256: Cannot get from DexEncodedMethod to holder DexClass for outline methods
  • Issue #74379749: R8 keeps un-initialized static field which are only read
  • Issue #124181032: cannot parse keepclassmembers which contains excludes
  • Issue #124181030: Removed interfaces need to account for ServiceLoader resource filenames
  • Issue #124584385: IndexOutOfBoundsException when enable R8
  • Issue #124457717: R8 NullPointerException with OkHttp 3.13.1
  • Issue #126443924: transformClassesAndResourcesWithR8 failed java.lang.IllegalStateException
  • Issue #124593221: Error generating the app bundle when using coroutines 1.1.1
  • Issue #124155517: runtime NPE in Kotlin Coroutine Dispatcher
  • Issue #123390221: Lambda debugging tests started failing on the bots
  • Issue #123730537: Main application class can't be loaded (ClassNotFoundException), but exists in classes2.dex
  • Issue #124356534: Can't change Foreground layer Clip Art color in Image Asset studio
  • Issue #120898718: SVG with subpaths beginning with 'm' commands fails to convert properly
  • Issue #119372339: SVG containing clip paths and transforms does not preview or export to VectorDrawable correctly in Android Studio
  • Issue #126165767: DDMLIB process uses a full CPU core even when no device / emulator is connected
  • Issue #119924169: SVG-to-Vector converter breaks if element is declared inside of a element
  • Issue #119882812: Vector Import tool does not render the intended output.
  • Issue #112456379: Kotlin main classes appear on the class path before test classes when running unit tests
  • Issue #121341637: Internal lint error
  • Issue #123377555: Custom Lint check not showing up with AS + AGP 3.4.0-beta02
  • Issue #127213632: NewModuleTest.addNewModuleToAndroidxProject fails on studio-3.4-dev

New in Android Studio 3.3.2 (Mar 4, 2019)

  • Android manifest contains incorrect values for platformBuildVersionCode and platformBuildVersionName
  • Indexer cannot find included header files
  • Android Studio JNI / C++ support broken
  • CMake integration is broken
  • Per-project Studio settings getting lost.
  • AndroidClassWithOnlyInnerClassesBase.<init> Incorrect package name 1
  • Cannot open Andriod Studio /Users/?/.android/analytics.settings
  • Custom view doesn't render correctly in Layout Preview if it's located in the same library module
  • Layout Editor Preview tab loads in empty state
  • Memory leak in RenderTask.myAssetRepository
  • Android Studio 3.3 RC 2 Can not resolve symbol in studio editor for resource created by build phase
  • R class navigation doesn't work with AS 3.3 and AGP 3.2
  • profiling-failed-in-android-studio-3-3 all apps crash with new AS 3.3 until you disable "adv. profiling"!
  • R class navigation doesn't work with AS 3.3 and AGP 3.1
  • In China, gradle sync will fail with "can not get time from google servers"
  • Can not break on if statements
  • Ctrl+F10 on Windows 10 Android Studio v3.3 opens window menu instead of executing Instant Run (Update Running Application)

New in Android Studio 3.5 Canary 6 (Feb 27, 2019)

  • This update includes fixes for the following public issues:
  • Issue #124471103: lint.jar does not show up in packaged AAR libraries when using lintPublish
  • Issue #124437190: Artifact collection during MergeResources task can take very long for sufficiently large dependency graphs.
  • Issue #111056281: AAPT2 does not disable versioning of ObjectAnimator resources referenced in animated vector drawables
  • Issue #119372339: SVG containing clip paths and transforms does not preview or export to VectorDrawable correctly in Android Studio
  • Issue #124232663: Read access exception when pasting string in property panel (from NlComponentBackendXml)
  • Issue #119924169: SVG-to-Vector converter breaks if element is declared inside of a element
  • Issue #119882812: Vector Import tool does not render the intended output.
  • Issue #37099520: the "Open File or Project" dialog takes 40 secs or so to display
  • Issue #121341637: Internal lint error
  • Issue #123377555: Custom Lint check not showing up with AS + AGP 3.4.0-beta02
  • Issue #124359884: New Module wizard does not allow creating module in sub folder
  • Issue #124164871: New Fragment Wizard Generates Unused Code
  • Issue #117207347: Studio default set up wizard downloads m2repository
  • Issue #124459240: Update url in code to point to feature plugin migration guide

New in Android Studio 3.5 Canary 5 (Feb 21, 2019)

  • Issue #122554774: Error before lint: Resolving this BuildableArtifact can only done during task execution.
  • Issue #124227171: Android manifest contains incorrect values for platformBuildVersionCode and platformBuildVersionName
  • Issue #123558506: R8 won't compress APK's kotlin folder
  • Issue #120779854: Android Studio Freezes processing logcat
  • Issue #123409929: Cannot find symbol java.util.List
  • Issue #110463869: Preview tab
  • Issue #123776985: Navigation editor generates wrong reference for arguments that are public static inner classes
  • Issue #120609432: Support Serializable (incl enums) and arrays for arguments
  • Issue #122846702: R class navigation doesn't work with AS 3.3 and AGP 3.2
  • Issue #123985288: Some lint quickfixes that are not registered with autoFix=true are applied by the lintFix gradle task
  • Issue #124329575: [New PSD] Module type is not detected if android plugin is not the first one
  • Issue #124074412: Create API to return the result of "adb devices" from the command line
  • Issue #124070991: Make WindowsParser error handling more robust
  • Issue #123886074: Update the Connection Assistant to decorate devices based on whether ADB and ddmslib sees them
  • Issue #112324902: sdk manager patch merge conflict dialog contrast too low
  • Issue #123677458: Creating a new project should explicitly set project name in settings.gradle via rootProject.name = "..."
  • Issue #123311600: Manifest merger failed when deep linking in navigation graph

New in Android Studio 3.4 Beta 5 (Feb 21, 2019)

  • Issue #123068209: Classloader leaks in AGP
  • Issue #124227171: Android manifest contains incorrect values for platformBuildVersionCode and platformBuildVersionName
  • Issue #123850906: com.android.tools.r8.errors.InvalidDebugInfoException: Attempt to define local of type float as $i$a$6$let
  • Issue #110463869: Preview tab
  • Issue #124232663: Read access exception when pasting string in property panel (from NlComponentBackendXml)
  • Issue #124232186: Property Panel: down key in popups moves focus on previous element
  • Issue #120609432: Support Serializable (incl enums) and arrays for arguments
  • Issue #122846702: R class navigation doesn't work with AS 3.3 and AGP 3.2
  • Issue #124329575: [New PSD] Module type is not detected if android plugin is not the first one

New in Android Studio 3.5 Canary 4 (Feb 15, 2019)

  • This update includes fixes for the following public issues:
  • Issue #123054726: sdkmanager --licenses isn't pulling latest licenses, despite CI build failure saying otherwise
  • Issue #117374693: Android Studio incorrectly warns that s inside of VectorDrawables are unsupported on API 23 and below
  • Issue #118149362: The "Setting" clipart icon creates unnecessary overhead by being drawn too elaborately
  • Issue #122866738: getProcessManifest wrong deprecation alternative in Javadoc
  • Issue #122881612: New R file generation on Studio 3.3 fails to execute
  • Issue #120625735: Gradle sync failed
  • Issue #118596839: C++ parsing errors - wrong paths in android_gradle_build.json
  • Issue #123616298: Space in project path causes cmake 3.10 build to fail
  • Issue #123071299: cmake integration is broken
  • Issue #68178350: Code Style Right margin settings bug
  • Issue #78097962: [bug] Per project Studio settings getting lost.
  • Issue #123178228: AndroidClassWithOnlyInnerClassesBase.: Incorrect package name: 1
  • Issue #120277395: AndroidX compilation failure: "cannot generate view binders: Stream closed"
  • Issue #123071296: Layout Bar ghost image, remains locked on screen. Cannot be removed until AS restart.
  • Issue #73826291: Memory leak in RenderTask.myAssetRepository
  • Issue #120750247: Android Studio 3.3 RC 2: Can not resolve symbol in studio editor for resource created by build phase
  • Issue #123032845: Resource ID can't be resolved in XML and JAVA under some circumstances (but a project is compilable)
  • Issue #123393225: AndroidGotoRelatedProvider no longer finds AAR resources
  • Issue #123089182: False positives for Implicit Sam Conversion check
  • Issue #80205221: Manifest element placed in displays incorrect lint warning
  • Issue #122944954: profiling-failed-in-android-studio-3-3 all apps crash with new AS 3.3 until you disable "adv. profiling"!
  • Issue #123523414: GradleTaskRunners leak whenever app is run
  • Issue #123377557: R class navigation doesn't work with AS 3.3 and AGP 3.1
  • Issue #122553598: Adding new module to an androidx project fails
  • Issue #122885760: In China, gradle sync will fail with "can not get time from google servers"
  • Issue #122955511: ADB Connection Assistant Exception on MacOS
  • Issue #123885701: Record UsbDevice serial numbers on linux
  • Issue #123886676: Record UsbDevice serial numbers on Mac
  • Issue #37104675: ddmlib sometimes loses clients after attach debugger followed by detach
  • Issue #123377224: Run/Debug Configuration dialog's Deployment Target Options drop-down combo box always resets to "Use the device/snapshot drop down" option
  • Issue #37092608: SDK Manager complains about "No space left on device"

New in Android Studio 3.4 Beta 4 (Feb 15, 2019)

  • Sdkmanager --licenses isn't pulling latest licenses, despite CI build failure saying otherwise
  • Android Studio incorrectly warns that s inside of VectorDrawables are unsupported on API 23 and below
  • Issue #118149362: The "Setting" clipart icon creates unnecessary overhead by being drawn too elaborately
  • GetProcessManifest wrong deprecation alternative in Javadoc
  • New R file generation on Studio 3.3 fails to execute
  • Gradle sync failed
  • C++ parsing errors - wrong paths in android_gradle_build.json
  • Space in project path causes cmake 3.10 build to fail
  • Cmake integration is broken
  • Code Style Right margin settings bug
  • [bug] Per project Studio settings getting lost.
  • AndroidClassWithOnlyInnerClassesBase.: Incorrect package name: 1
  • AndroidX compilation failure: "cannot generate view binders: Stream closed"
  • Layout Bar ghost image, remains locked on screen. Cannot be removed until AS restart.
  • Memory leak in RenderTask.myAssetRepository
  • Android Studio 3.3 RC 2: Can not resolve symbol in studio editor for resource created by build phase
  • Resource ID can't be resolved in XML and JAVA under some circumstances (but a project is compilable)
  • AndroidGotoRelatedProvider no longer finds AAR resources
  • False positives for Implicit Sam Conversion check
  • Manifest element placed in displays incorrect lint warning
  • Profiling-failed-in-android-studio-3-3 all apps crash with new AS 3.3 until you disable "adv. profiling"!
  • GradleTaskRunners leak whenever app is run
  • R class navigation doesn't work with AS 3.3 and AGP 3.1
  • Adding new module to an androidx project fails
  • In China, gradle sync will fail with "can not get time from google servers"
  • ADB Connection Assistant Exception on MacOS
  • Record UsbDevice serial numbers on linux
  • Record UsbDevice serial numbers on Mac
  • Ddmlib sometimes loses clients after attach debugger followed by detach
  • Run/Debug Configuration dialog's Deployment Target Options drop-down combo box always resets to "Use the device/snapshot drop down" option
  • Issue #37092608: SDK Manager complains about "No space left on device"

New in Android Studio 3.5 Canary 3 (Feb 1, 2019)

  • This update includes fixes for the following public issues:
  • Issue #122950060: Aapt2 compile segfault on 16MB PNG
  • Issue #122856772: Application Build Error with no helpful debug info
  • Issue #113122600: Off by one error in file line and col display?
  • Issue #122965665: AS 3.5a1: Too many files open
  • Issue #122866741: Typo in IDE
  • Issue #122883564: How to remove the smiley buttons on Android Studio 3.3
  • Issue #122881600: Layout preview zoom buttons broken in 3.3
  • Issue #120409977: A suggestion for the design view
  • Issue #122883561: Android Studio 3.3 does not see classes generated into build/generated/source/kaptKotlin

New in Android Studio 3.4 Beta 3 (Feb 1, 2019)

  • This update includes fixes for the following public issues:
  • Issue #123242448: Error: Program type already present: $r8$java8methods$utility$Integer$hashCode$II
  • Issue #122887884: VerifyError: register v2 has type Conflict but expected Integer
  • Issue #116774422: Add support for -checkdiscard for main-dex rules
  • Issue #122937067: transformClassesAndResourcesWithR8ForDebugAndroidTest fails when firebase-iid is a dependency
  • Issue #122823789: Error " Expected [!]interface|@interface|class|enu" on empty line
  • Issue #122883564: How to remove the smiley buttons on Android Studio 3.3
  • Issue #122881600: Layout preview zoom buttons broken in 3.3
  • Issue #123222392: Resource Explorer is not displayed if no android facet has been created before opening it
  • Issue #122883561: Android Studio 3.3 does not see classes generated into build/generated/source/kaptKotlin

New in Android Studio 3.5 Canary 2 (Jan 25, 2019)

  • This update includes the following enhancements:
  • Apply Changes is now compatible with x86_64 emulator images.
  • This update includes fixes for the following public issues:
  • Issue #122718199: CharSequences#startsWith throws StringIndexOutOfBoundsException
  • Issue #122301106: Memory leak in ProcessProfileWriterFactory
  • Issue #116700688: AAPT2 Strips Leading Zeros from Strings in XML Files
  • Issue #117889706: Stop depending on ValidateSigningTask manually
  • Issue #111411525: Data binding errors aren't displayed in build pane
  • Issue #68902782: Resource Ids are not updating during a Rename refactoring
  • Issue #118469827: CPU Recording: Unable to parse capture: java.lang.NullPointerException
  • Issue #116536168: TextWatcher Not Always Generated for Binding Expressions Referencing EditText Widgets
  • Issue #122553653: Change Propagation using BaseObservable not working after setLifecycleOwner
  • Issue #122066788: NullpointerException in android.databinding.ViewDataBinding
  • Issue #119960651: Databinding does not work with a Kotlin ViewModel and an interface with type parameter
  • Issue #116821433: Databinding and generics, incompatible types error
  • Issue #62685775: Data Binding build error is vague
  • Issue #120853927: Windows: seems like aapt2 still has issues with path > 260 characters.
  • This update includes the following known issues:
  • Only a single destination destination can be created through the add destination menu without closing and reopening the tab. We expect this to be resolved in the next 3.5 Canary release.
  • In ConstraintLayout, widgets constraints will not be able to auto-connect in both layout design view and preview.

New in Android Studio 3.4 Beta 2 (Jan 25, 2019)

  • This update includes fixes for the following public issues:
  • Issue #122718199: CharSequences#startsWith throws StringIndexOutOfBoundsException
  • Issue #122301106: Memory leak in ProcessProfileWriterFactory
  • Issue #122133551: Image preview is blank for png file
  • Issue #122553653: Change Propagation using BaseObservable not working after setLifecycleOwner

New in Android Studio 3.5 Canary 1 (Jan 16, 2019)

  • This update also includes fixes for the following public issues:
  • Issue#121017797: Cannot build project with Gradle plugin from included build
  • Issue#116846624: Constraint Layout bug in the Layout Editor
  • Issue#111950741: Wrong preview in layout editor
  • Issue#63962416: Android Lint incorrectly reports missing location permission
  • Issue#119753493: False positive for WrongConstant after AndroidX Migration
  • Issue#118605194: Studio connection to adb server fails on Android Studio 3.2.1

New in Android Studio 3.4 Beta 1 (Jan 16, 2019)

  • This update includes fixes for several bugs, including the following:
  • Issue#121017797: Cannot build project with Gradle plugin from included build.
  • Issue#116846624: Constraint Layout bug in the Layout Editor.
  • Issue#111950741: Wrong preview in layout editor.
  • Issue#118605194: Studio connection to ADB server fails on Android Studio 3.2.1.

New in Android Studio 3.3 (Jan 15, 2019)

  • ntelliJ IDEA 2018.2.2:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.2.2 release.
  • Android Gradle plugin updates:
  • For information on what’s new in the Android Gradle plugin, see its release notes.
  • Navigation Editor:
  • The Navigation Editor lets you quickly visualize and build navigation into your app by using the Navigation Architecture Component.
  • Delete unused Android Studio directories:
  • When you run a major version of Android Studio for the first time, it looks for directories containing caches, settings, indices, and logs for versions of Android Studio for which a corresponding installation can’t be found. The Delete Unused Android Studio Directories dialog then displays locations, sizes, and last-modified times of these unused directories and provides an option to delete them.
  • Lint improvements:
  • Lint, when invoked from Gradle, is significantly faster—larger projects can expect lint to run up to four times faster.
  • Create New Project wizard:
  • The Create New Project wizard has a new look and contains updates that help streamline the creation of new Android Studio projects.
  • Profiler updates:
  • Android Studio 3.3 includes updates to several of the individual profilers.
  • Improved performance:
  • Based on user feedback, rendering performance while using the profilers has been greatly improved. Please continue to provide feedback, especially if you continue to see performance issues.
  • Profiler memory allocation tracking options:
  • To improve app performance while profiling, the Memory Profiler now samples memory allocations periodically by default. If desired, you can change this behavior by using the Allocation Tracking dropdown when testing on devices running Android 8.0 (API level 26) or higher.
  • Using the Allocation Tracking dropdown, you can choose from the following modes:
  • Full: captures all object memory allocations. Note that if you have an app that allocates a lot of objects, you might see significant performance issues while profiling.
  • Sampled: captures a periodic sample of object memory allocations. This is the default behavior and has less impact on app performance while profiling. You might encounter some performance issues with apps that allocate a lot of objects within a short time period.
  • Off: turns memory allocation off. If not already selected, this mode is enabled automatically while taking a CPU recording and then returned to the previous setting when the recording is finished. You can change this behavior in the CPU recording configuration dialog.
  • The tracking affects both Java objects and JNI references.
  • Inspect frame rendering data:
  • In the CPU Profiler, you can now inspect how long it takes your Java app to render each frame on the main UI thread and RenderThread. This data might be useful when investigating bottlenecks that cause UI jank and low framerates. For example, each frame that takes longer than the 16ms required to maintain a smooth framerate is displayed in red.
  • To see frame rendering data, record a trace using a configuration that allows you to Trace System Calls. After recording the trace, look for info about each frame along the timeline for the recording under the section called FRAMES.
  • Fragments in the event timeline:
  • The event timeline now shows when fragments are attached and detached. Additionally, when you hover over a fragment, a tooltip shows you the fragment status.
  • View formatted text for connection payloads in the Network profiler:
  • Previously, the Network profiler displayed only raw text from connection payloads. Android Studio 3.3 now formats certain text types by default, including JSON, XML, and HTML. In the Response and Request tabs, click the View Parsed link to display formatted text, and click the View Source link to display raw text.
  • Automatic downloading of SDK components:
  • When your project needs an SDK component from the SDK platforms, NDK, or CMake, Gradle now attempts to automatically download the required packages as long as you’ve previously accepted any related license agreements using the SDK Manager.
  • Support for Clang-Tidy:
  • Android Studio now includes support for static code analysis using Clang-Tidy for projects that include native code. To enable support for Clang-Tidy, update your NDK to r18 or higher.
  • You can then enable or re-enable the inspections by opening the Settings or Preferences dialog and navigating to Editor > Inspections > C/C++ > General > Clang-Tidy. When selecting this inspection in the Settings or Preferences dialog, you can also see the list of Clang-Tidy checks that are enabled and disabled under the Option section of the right-most panel. To enable additional checks, add them to the list and click Apply.
  • To configure Clang-Tidy with additional options, click Configure Clang-Tidy Checks Options and add them in the dialog that opens.
  • Removal of options for C++ customization:
  • The following options have been removed from the Customize C++ Support dialog:
  • Exceptions Support (-fexceptions)
  • Runtime Type Information Support (-ftti)
  • The respective behaviors are enabled for all projects created through Android Studio.
  • CMake version 3.10.2:
  • CMake version 3.10.2 is now included with SDK Manager. Note that Gradle still uses version 3.6.0 by default.
  • New “+” syntax to specify minimum CMake versions:
  • When specifying a version of CMake in your main module’s build.gradle file, you can now append a “+” to match the behavior of CMake’s cmake_minimum_required() command.
  • Android App Bundles now support Instant Apps:
  • Android Studio now lets you build Android App Bundles with full support for Google Play Instant. In other words, you can now build and deploy both installed app and instant experiences from a single Android Studio project and include them in a single Android App Bundle.
  • If you’re creating a new Android Studio project using the Create New Project dialog, make sure you check the box next to Configure your project > This project will support instant apps. Android Studio then creates a new app project as it normally would, but includes the following properties in your manifest to add Instant app support to your app’s base module
  • You can then create an instant-enabled dynamic feature module by selecting File > New > New Module from the menu bar and then selecting Instant Dynamic Feature Module from the Create New Module dialog. Keep in mind, creating this module also instant-enables your app’s base module.
  • To deploy your app to a local device as an instant experience, edit your run configuration and check the box next to General > Deploy as instant app.
  • Single-variant project sync:
  • Syncing your project with your build configuration is an important step in letting Android Studio understand how your project is structured. However, this process can be time-consuming for large projects. If your project uses multiple build variants, you can now optimize project syncs by limiting them to only the variant you have currently selected.
  • You need to use Android Studio 3.3 or higher with Android Gradle plugin 3.3.0 or higher to enable this optimization. When you meet these requirements, the IDE prompts you to enable this optimization when you sync your project. The optimization is also enabled by default on new projects.
  • To enable this optimization manually, click File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle on a Mac) and select the Only sync the active variant checkbox.
  • Provide quick feedback:
  • If you've opted into sharing usage statistics to help improve Android Studio, you'll see two new icons in the status bar at the bottom of the IDE window.
  • Simply click the icon that best represents your current experience with the IDE. When you do so, the IDE sends usage statistics that allow the Android Studio team to better understand your sentiment. In some cases, such as when you indicate a negative experience with the IDE, you'll have an opportunity to provide additional feedback.
  • If you haven't already done so, you can enable sharing usage statistics by opening the Settings dialog (Preferences on a Mac), navigating to Appearance & Behavior > System Settings > Data Sharing, and checking Send usage statistics to Google.

New in Android Studio 3.4 Canary 10 (Jan 4, 2019)

  • Issue#118776504: Avoid manifest merger cache misses
  • Issue#116361869: AS Error: Progress subrange out of bounds
  • Issue#80130688: Search Everywhere for strings opens the R.java file instead of opening the string.xml
  • Issue#112715908: Please put back "Build" button to the TouchBar like it is in IntelliJ Idea, or give users ability to customize it.
  • Issue#37150511: Data binding variable tag auto-complete does not include closing tag
  • Issue#120797515: R classes are not resolved in newly created projects (again)
  • Issue#118605194: Studio connection to adb server fails on Android Studio 3.2.1

New in Android Studio 3.4 Canary 9 (Dec 27, 2018)

  • Issue#120555992: Use settings to temporarily disable tips of the day
  • Issue#120171528: 3.4 Canary 5 -> Installation failed - Rerun
  • Issue#120039148: Can't delete profile session
  • Issue#119385915: Profiler cannot be launched when debugging AOSP in 3.2

New in Android Studio 3.3 RC 3 (Dec 21, 2018)

  • This release includes a fix for a Lint performance regression introduced in Android Studio 3.1. With this fix, the Lint performance has improved as much as 4X compared to Android 3.3 RC2.

New in Android Studio 3.4 Canary 8 (Dec 13, 2018)

  • New Resource Manager:
  • Resource management is a new tool window for creating, managing, and using resources in your app.
  • This tool window allows you to do the following:
  • Bulk import: You can now import multiple drawable assets at once by either dragging and dropping them into your Resources tool window or the Resource management import wizard. The wizard can also convert your SVG files into VectorDrawables.
  • Drag and drop assets: From the Resource management tool window you can drag and drop drawables onto the Layout Editor design and text view surfaces.
  • View alternative versions: You can now view alternative versions of your resources by double-clicking a resource within the Tool window. This view shows the different versions you have created and the qualifiers that were included.
  • Tile and list views: You can change the view within the tool window to help visualize your resources.
  • If this tool window does not appear in your Canary build, you can access it by selecting View > Tool Windows > Resources. For more information on this feature and others, see New features in Android Studio Preview.
  • This update includes fixes for several bugs, including the following:
  • Issue#120555992: Stop disabling tips of the day
  • Issue#120460980: Update AGP to Gradle 5.1-milestone-1
  • Issue#117646654: Stop injecting SDK m2repositories
  • Issue#116673790: Getting Execution failed for task processDebugResources'. > java.nio.charset.MalformedInputException: Input length = 1
  • Issue#119210741: Lint offers auto fix to incompatible Android Gradle Plugin versions.
  • Issue#119994299: Android Studio / Image Assets Wizard / Launcher Icons / Legacy / Tool tip
  • Issue#119563792: Incorrect warnings in Android Studio Room SQL with FTS
  • Issue#118538324: Custom layout with Dialog Preference from android x layout issue in Android studio
  • Issue#120087311: Enforce RestrictTo(LIBRARY) when the API is defined in another project
  • Issue#120162341: Lint detection of Configuration.densityDpi field is strange when minSdk < 17
  • Issue#67816403: Option to disable System Image patcher
  • Issue#119661177: The ViewDataBinding.OnStartListener lifecycle observer leaks the view hierarchy after Fragment.onDestroyView
  • Issue#120255763: Deterministic Builds Break when using databinding

New in Android Studio 3.4 Canary 7 (Dec 7, 2018)

  • This update includes fixes for several bugs, including the following:
  • Issue#116747159: Task generateDebugR2 fails on 3.3a12 when generating separate R classes.
  • Issue#119536413: Convert FixStackFramesTransform to a task.
  • Issue#112158840: Templates use deprecated classes if theme isn't appcompat.
  • Issue#116541301: Databinding v2 produces errors when another annotation processor fails.

New in Android Studio 3.3 RC 2 (Dec 7, 2018)

  • This update includes fixes for several bugs, including the following:
  • Issue#116747159: Task generateDebugR2 fails on 3.3a12 when generating separate R classes
  • Issue#119662037: -printmapping fails with FileNotFoundException
  • Issue#116404240: False positive on UnusedAttribute foreground on FrameLayout
  • Issue#116677290: Lint failure when ignoring some issue ids

New in Android Studio 3.4 Canary 6 (Dec 3, 2018)

  • This update includes the following new features and changes in behavior:
  • R8 now supports Android library projects.
  • The minimum version for Butterknife is now 9.0.0-rc2.
  • This update includes fixes for several bugs, including the following:
  • Gradle was passing the databinding JAR two or more time to R8, causing APK builds to fail with a TransformException.
  • The classpath was computed in a way that included library artifacts more than once.
  • The Kotlin plugin was throwing databinding exceptions.
  • The layout editor would not zoom in if the device size was 10% or smaller.
  • Lint would generate StaticFieldLeak warnings even when using the application context.

New in Android Studio 3.4 Canary 5 (Nov 27, 2018)

  • This update includes the following new features and changes in behavior:
  • lintFix will no longer abort if errors are found.
  • This update includes fixes for several bugs, including the following:
  • Class instrumentation before method inlining caused issues with Jacoco Gradle plugin.
  • ANDROID_SDK_ROOT was not being used correctly.
  • C++ code completion didn't work with external CMake.
  • Running Lint from the command line was returning false negatives in some cases.

New in Android Studio 3.3 RC1 (Nov 27, 2018)

  • The minimum supported version of the Butter Knife Gradle plugin is now com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2.

New in Android Studio 3.4 Canary 4 (Nov 16, 2018)

  • This update includes the following new features and changes in behavior:
  • If using experimental DSL block postprocessing options, tree shaking is enabled by default.
  • In your DSL, using android.getBootClasspath() will now return the correct bootclasspath in cases when Java 8 language features are used.
  • This update includes fixes for several bugs, including the following:
  • Guava-inspection was not reporting certain errors related to minSdkVersion.
  • Layout preview pane would be blank when an XML layout file contained a custom view that threw an error.

New in Android Studio 3.3 Beta 4 (Nov 13, 2018)

  • This update includes the following bug fixes:
  • Builds created using Bazel Build would throw "Build Event Protocol update failed" errors.
  • Jetifier caused AAB builds to fail and forced Dagger 2.16 to be used, even when 2.17 was declared as a dependency.
  • Composite builds would fail on the Windows platform.
  • Timber would cause Lint checks to occur on projects where Lint checks weren't defined.
  • Project compilation would sometimes fail because of an error accessing manifest fields using reflection.
  • J-style lambdas would create self-recursion, leading to null-pointer exceptions and stack overflows.

New in Android Studio 3.4 Canary 3 (Nov 8, 2018)

  • This update includes the following new features and changes in behavior:
  • Lint now informs you when a non-public Java method is annotated with @JavascriptInterface.
  • This update includes fixes for several bugs, including the following:
  • ExtractAnnotations in Gradle would cause an error when sources were missing.
  • JacocoTask didn't consume runtime R-classes, and removed them instead, causing crashes.
  • Building databinding in AOSP depended on the hardcoded paths of prebuilts SDK.
  • Running lintDebug would throw NullPointerExceptions.
  • Lint would incorrectly state that MediaMetadataCompat.Builder does not support custom keys.
  • Processes couldn't be selected in Profiler when there were too many to display on the screen at once.
  • IDE classpaths were not handled correctly for api.jar in libraries.

New in Android Studio 3.3 Beta 3 (Nov 8, 2018)

  • Gradle caused a string-index overflow
  • "Ignore files and folders" setting caused errors when indexing resource names

New in Android Studio 3.4 Canary 2 (Oct 25, 2018)

  • This update includes the following new features and changes in behavior:
  • The addition of the File > Re-Import Gradle Project command.
  • This update includes fixes for several bugs, including the following:
  • Manifest Merger did not support including '+', '-', and '.' in schemes.
  • The Event Log window was not consistently representing the status of the Scroll to the end button.
  • Android Support plugin was causing Android Studio to crash.
  • Gradle could not find the symbol for data binding.

New in Android Studio 3.4 Canary 1 (Oct 22, 2018)

  • This update includes the following new features and changes in behavior:
  • The Multiline Text widget is now assigned a default gravity of top | start.
  • This update includes fixes for several bugs, including the following:
  • The Project window was occasionally crashing when sorting files by type.
  • CMake was throwing a NullPointerException when enabling Only sync the active variant (for current project) experimental feature.
  • Connection Assistant was showing duplicate USB devices.
  • Attempting to remove a project module was causing Android Studio to crash without removing the module.
  • Select Deployment Target dialog wasn't displaying USB devices before finishing a scan for virtual devices.

New in Android Studio 3.3 Beta 1 (Oct 22, 2018)

  • This update includes the following change in behavior:
  • CPU Profiler - New live allocation memory tracking options
  • To improve app performance while profiling, you can now choose a mode for live memory allocation tracking on devices running API level 26 or higher. Choose from Full (all object memory allocations), Sampled (periodic sampling of allocations), or None.
  • This update includes the following bug fixes:
  • The Project window was occasionally crashing when sorting files by type.
  • CMake was throwing a NullPointerException when enabling Only sync the active variant (for current project) experimental feature.
  • D8 was incorrectly failing to compile with the following error message: com.android.tools.r8.errors.Unreachable: Unexpected type adjustment from java.lang.Object to com.android.transport.model.entity.ApproveDelegator[]

New in Android Studio 3.2.1 (Oct 12, 2018)

  • This update to Android Studio 3.2 includes the following changes and fixes:
  • The bundled Kotlin version is now 1.2.71.
  • The default build tools version is now 28.0.3.
  • In the Navigation library, argument types have been renamed from type to argType.
  • The following bugs have been fixed:
  • When using the Data Binding library, variable names with underscores were causing compilation errors.
  • CMake was causing IntelliSense and other CLion features to fail.
  • Adding a SliceProvider was causing compilation errors in projects that did not use androidx.* libraries.
  • Some Kotlin unit tests were not being run.
  • An issue with data binding was causing a PsiInvalidElementAccessException.
  • <merge> elements were sometimes causing the Layout Editor to crash.

New in Android Studio 3.3 Canary 12 (Sep 27, 2018)

  • This update includes the following new features and changes in behavior:
  • CMake version 3.10.2: CMake version 3.10.2 is now included with SDK Manager. Note that Gradle still uses version 3.6.0 by default. To specify a CMake version for Gradle to use, add the following to your main module’s build.gradle file:
  • New “+” syntax to specify minimum CMake versions: When specifying a version of CMake in your main module’s build.gradle file, you can now append a “+” to mimic the behavior of CMake’s cmake_minimum_required() command.
  • Delete Unused Directories Dialog: When a new major version of Android Studio is run for the first time, it looks for directories containing caches, settings, indices, and logs that are associated with old versions of Android Studio for which a corresponding installation can’t be found. When found, a dialog displays their locations, sizes, and last-modified times and provides the option to delete them.
  • This update includes fixes for several bugs, including the following:
  • Some deprecated kotlin-stdlib-jre* artifacts were still being used when creating new projects.
  • AAPT2 was crashing when project folders were on a different drive than the build folder.

New in Android Studio 3.2 (Sep 25, 2018)

  • What's New Assistant:
  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.
  • Android Jetpack:
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor:
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, check the box next to Enable Navigation Editor, and restart Android Studio.
  • AndroidX migration:
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • Android App Bundle:
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • Sample data in Layout Editor:
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices:
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.
  • Kotlin 1.2.61:
  • Android Studio 3.2 bundles Kotlin 1.2.61, and the new Android SDK integrates better with Kotlin.
  • IntelliJ IDEA 2018.1.6:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.1.6 release.
  • Android profilers:
  • Sessions:
  • You can now save Profiler data as sessions to revisit and inspect later. The profiler keeps your session data until you restart the IDE.
  • When you record a method trace or capture a heap dump, the IDE adds that data (along with your app's network activity) as a separate entry to the current session, and you can easily switch back and forth between recordings to compare data.
  • System Trace:
  • In the CPU Profiler, select the new System Trace configuration to inspect your device's system CPU and thread activity. This trace configuration is built on systrace and is useful for investigating system-level issues, such as UI jank.
  • While using this trace configuration, you can visually mark important code routines in the profiler timeline by instrumenting your C/C++ code with the native tracing API or your Java code with the Trace class.
  • Inspect JNI references in the Memory Profiler:
  • If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can now inspect memory allocations for your app’s JNI code using the Memory Profiler.
  • While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down menu above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • Import, export, and inspect memory heap dump files:
  • You can now import, export, and inspect .hprof memory heap dump files created with the Memory Profiler.
  • Import your .hprof file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the Memory Profiler as you would any other heap dump.
  • To save heap dump data to review later, use the Export Heap Dump button at the right of the Heap Dump entry in the Sessions pane. In the Export As dialog that appears, save the file with the .hprof filename extension.
  • Record CPU activity during app startup:
  • You can now record CPU activity during your app's startup, as follows:
  • Select Run > Edit Configurations from the main menu.
  • Under the Profiling tab of your desired run configuration, check the box next to Start recording a method trace on startup.
  • Select a CPU recording configuration to use from the dropdown menu.
  • Deploy your app to a device running Android 8.0 (API level 26) or higher by selecting Run > Profile.
  • Android Studio release notes
  • Android Studio is the official IDE for Android development, and includes everything you need to build Android apps.
  • To get the latest version, click Help > Check for updates (on Mac, Android Studio > Check for updates).
  • You can also download Android Studio here.
  • If you encounter problems in Android Studio, check the Known issues or Troubleshoot page.
  • For the latest news on releases, including a list of notable fixes in each preview release, see the release updates.
  • For information on what’s new in the Android Plugin for Gradle, see its release notes.
  • 3.2 (September 2018)
  • Android Studio 3.2 is a major release that includes a variety of new features and improvements.
  • 3.2.0 known issues
  • We strongly recommend against updating to Kotlin 1.2.70.
  • Android Studio includes a version of Kotlin 1.2.61 that fixes a bug that can cause Android Studio to hang. Kotlin 1.2.71 and later will also include this fix. Kotlin 1.2.70 does not include this fix.
  • Although you typically don't need to specify the build tools version, when using Android Gradle plugin 3.2.0 with renderscriptSupportModeEnabled set to true, you need to include the following in each module's build.gradle file:
  • android.buildToolsVersion "28.0.3"
  • What's New Assistant
  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.
  • Android Jetpack
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, check the box next to Enable Navigation Editor, and restart Android Studio.
  • To learn more, read the Navigation Editor documentation.
  • AndroidX migration
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
  • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Both flags are set to true when you use the Migrate to AndroidX command.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
  • Android App Bundle
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • For more information, including instructions for building and analyzing an Android App Bundle, see Android App Bundle.
  • Sample data in Layout Editor
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.
  • To learn more, including how to test your Slice interactions, read the Slices getting started guide.
  • Kotlin 1.2.61
  • Android Studio 3.2 bundles Kotlin 1.2.61, and the new Android SDK integrates better with Kotlin. For more information, see the Android Developers blog.
  • IntelliJ IDEA 2018.1.6
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.1.6 release.
  • Android profilers
  • Try the following new Android Profiler features in Android Studio 3.2.
  • Sessions
  • You can now save Profiler data as sessions to revisit and inspect later. The profiler keeps your session data until you restart the IDE.
  • When you record a method trace or capture a heap dump, the IDE adds that data (along with your app's network activity) as a separate entry to the current session, and you can easily switch back and forth between recordings to compare data.
  • System Trace
  • In the CPU Profiler, select the new System Trace configuration to inspect your device's system CPU and thread activity. This trace configuration is built on systrace and is useful for investigating system-level issues, such as UI jank.
  • While using this trace configuration, you can visually mark important code routines in the profiler timeline by instrumenting your C/C++ code with the native tracing API or your Java code with the Trace class.
  • Inspect JNI references in the Memory Profiler
  • If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can now inspect memory allocations for your app’s JNI code using the Memory Profiler.
  • While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down menu above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • Import, export, and inspect memory heap dump files
  • You can now import, export, and inspect .hprof memory heap dump files created with the Memory Profiler.
  • Import your .hprof file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the Memory Profiler as you would any other heap dump.
  • To save heap dump data to review later, use the Export Heap Dump button at the right of the Heap Dump entry in the Sessions pane. In the Export As dialog that appears, save the file with the .hprof filename extension.
  • Record CPU activity during app startup
  • You can now record CPU activity during your app's startup, as follows:
  • Select Run > Edit Configurations from the main menu.
  • Under the Profiling tab of your desired run configuration, check the box next to Start recording a method trace on startup.
  • Select a CPU recording configuration to use from the dropdown menu.
  • Deploy your app to a device running Android 8.0 (API level 26) or higher by selecting Run > Profile.
  • Export CPU traces:
  • After you record CPU activity with the CPU Profiler, you can export the data as a .trace file to share with others or inspect later.
  • To export a trace after you’ve recorded CPU activity, do the following:
  • Right-click on the recording you want to export from the CPU timeline.
  • Select Export trace from the dropdown menu.
  • Navigate to where you want to save the file and click Save.
  • Import and inspect CPU trace files:
  • You can now import and inspect .trace files created with the Debug API or CPU Profiler. (Currently, you can't import System Trace recordings.)
  • Import your trace file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the CPU Profiler similar to how you normally would, with the following exceptions:
  • CPU activity is not represented along the CPU timeline.
  • The thread activity timeline indicates only where trace data is available for each thread and not actual thread states (such as running, waiting, or sleeping).
  • Record CPU activity using the Debug API:
  • You can now start and stop recording CPU activity in the CPU Profiler by instrumenting your app with the Debug API. After you deploy your app to a device, the profiler automatically starts recording CPU activity when your app calls startMethodTracing(String tracePath), and the profiler stops recording when your app calls stopMethodTracing(). While recording CPU activity that’s triggered using this API, the CPU Profiler shows Debug API as the selected CPU recording configuration.
  • Energy Profiler:
  • The Energy Profiler displays a visualization of the estimated energy usage of your app, as well as system events that affect energy usage, such as wakelocks, alarms, and jobs.
  • The Energy Profiler appears as a new row at the bottom of the Profiler window when you run your app on a connected device or Android Emulator running Android 8.0 (API 26) or higher.
  • Click the Energy row to maximize the Energy Profiler view. Place your mouse pointer over a bar in the timeline to see a breakdown of energy use by CPU, network, and location (GPS) resources, as well as relevant system events.
  • System events that affect energy usage are indicated in the System timeline below the Energy timeline. Details of system events within the specified time range are shown in the event pane when you select a time range in the Energy timeline.
  • To see the call stack and other details for a system event, such as a wakelock, select it in the event pane. To go to the code responsible for a system event, double-click the entry in the call stack.
  • Android Studio release notes
  • Android Studio is the official IDE for Android development, and includes everything you need to build Android apps.
  • To get the latest version, click Help > Check for updates (on Mac, Android Studio > Check for updates).
  • You can also download Android Studio here.
  • If you encounter problems in Android Studio, check the Known issues or Troubleshoot page.
  • For the latest news on releases, including a list of notable fixes in each preview release, see the release updates.
  • For information on what’s new in the Android Plugin for Gradle, see its release notes.
  • 3.2 (September 2018)
  • Android Studio 3.2 is a major release that includes a variety of new features and improvements.
  • 3.2.0 known issues
  • We strongly recommend against updating to Kotlin 1.2.70.
  • Android Studio includes a version of Kotlin 1.2.61 that fixes a bug that can cause Android Studio to hang. Kotlin 1.2.71 and later will also include this fix. Kotlin 1.2.70 does not include this fix.
  • Although you typically don't need to specify the build tools version, when using Android Gradle plugin 3.2.0 with renderscriptSupportModeEnabled set to true, you need to include the following in each module's build.gradle file:
  • android.buildToolsVersion "28.0.3"
  • What's New Assistant
  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.
  • Android Jetpack
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, check the box next to Enable Navigation Editor, and restart Android Studio.
  • To learn more, read the Navigation Editor documentation.
  • AndroidX migration
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
  • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Both flags are set to true when you use the Migrate to AndroidX command.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
  • Android App Bundle
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • For more information, including instructions for building and analyzing an Android App Bundle, see Android App Bundle.
  • Sample data in Layout Editor
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.
  • To learn more, including how to test your Slice interactions, read the Slices getting started guide.
  • Kotlin 1.2.61
  • Android Studio 3.2 bundles Kotlin 1.2.61, and the new Android SDK integrates better with Kotlin. For more information, see the Android Developers blog.
  • IntelliJ IDEA 2018.1.6
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.1.6 release.
  • Android profilers
  • Try the following new Android Profiler features in Android Studio 3.2.
  • Sessions
  • You can now save Profiler data as sessions to revisit and inspect later. The profiler keeps your session data until you restart the IDE.
  • When you record a method trace or capture a heap dump, the IDE adds that data (along with your app's network activity) as a separate entry to the current session, and you can easily switch back and forth between recordings to compare data.
  • System Trace
  • In the CPU Profiler, select the new System Trace configuration to inspect your device's system CPU and thread activity. This trace configuration is built on systrace and is useful for investigating system-level issues, such as UI jank.
  • While using this trace configuration, you can visually mark important code routines in the profiler timeline by instrumenting your C/C++ code with the native tracing API or your Java code with the Trace class.
  • Inspect JNI references in the Memory Profiler
  • If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can now inspect memory allocations for your app’s JNI code using the Memory Profiler.
  • While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down menu above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • Import, export, and inspect memory heap dump files
  • You can now import, export, and inspect .hprof memory heap dump files created with the Memory Profiler.
  • Import your .hprof file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the Memory Profiler as you would any other heap dump.
  • To save heap dump data to review later, use the Export Heap Dump button at the right of the Heap Dump entry in the Sessions pane. In the Export As dialog that appears, save the file with the .hprof filename extension.
  • Record CPU activity during app startup
  • You can now record CPU activity during your app's startup, as follows:
  • Select Run > Edit Configurations from the main menu.
  • Under the Profiling tab of your desired run configuration, check the box next to Start recording a method trace on startup.
  • Select a CPU recording configuration to use from the dropdown menu.
  • Deploy your app to a device running Android 8.0 (API level 26) or higher by selecting Run > Profile.
  • Export CPU traces
  • After you record CPU activity with the CPU Profiler, you can export the data as a .trace file to share with others or inspect later.
  • To export a trace after you’ve recorded CPU activity, do the following:
  • Right-click on the recording you want to export from the CPU timeline.
  • Select Export trace from the dropdown menu.
  • Navigate to where you want to save the file and click Save.
  • Import and inspect CPU trace files
  • You can now import and inspect .trace files created with the Debug API or CPU Profiler. (Currently, you can't import System Trace recordings.)
  • Import your trace file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the CPU Profiler similar to how you normally would, with the following exceptions:
  • CPU activity is not represented along the CPU timeline.
  • The thread activity timeline indicates only where trace data is available for each thread and not actual thread states (such as running, waiting, or sleeping).
  • Record CPU activity using the Debug API
  • You can now start and stop recording CPU activity in the CPU Profiler by instrumenting your app with the Debug API. After you deploy your app to a device, the profiler automatically starts recording CPU activity when your app calls startMethodTracing(String tracePath), and the profiler stops recording when your app calls stopMethodTracing(). While recording CPU activity that’s triggered using this API, the CPU Profiler shows Debug API as the selected CPU recording configuration.
  • Energy Profiler
  • The Energy Profiler displays a visualization of the estimated energy usage of your app, as well as system events that affect energy usage, such as wakelocks, alarms, and jobs.
  • The Energy Profiler appears as a new row at the bottom of the Profiler window when you run your app on a connected device or Android Emulator running Android 8.0 (API 26) or higher.
  • Click the Energy row to maximize the Energy Profiler view. Place your mouse pointer over a bar in the timeline to see a breakdown of energy use by CPU, network, and location (GPS) resources, as well as relevant system events.
  • System events that affect energy usage are indicated in the System timeline below the Energy timeline. Details of system events within the specified time range are shown in the event pane when you select a time range in the Energy timeline.
  • To see the call stack and other details for a system event, such as a wakelock, select it in the event pane. To go to the code responsible for a system event, double-click the entry in the call stack.
  • Lint checking:
  • Android Studio 3.2 includes many new and improved features for lint checking.
  • The new lint checks help you to find and identify common code problems, ranging from warnings about potential usability issues to high-priority errors regarding potential security vulnerabilities.
  • Lint checks for Java/Kotlin interoperability:
  • To make sure that your Java code interoperates well with your Kotlin code, new lint checks enforce the best practices described in the Kotlin Interop Guide. Examples of these checks include looking for the presence of Nullability annotations, use of Kotlin hard keywords, and placing lambda parameters last.
  • To enable these checks, click File > Settings (Android Studio > Preferences on Mac) to open the Settings dialog, navigate to the Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability section, and select the rules that you want to enable.
  • Lint checks for Slices:
  • New lint checks for Slices help to ensure that you are constructing Slices correctly. For example, lint checks warn you if you have not assigned a primary action to a Slice.
  • New Gradle target:
  • Use the new lintFix Gradle task to apply all of the safe fixes suggested by the lint check directly to the source code. An example of a lint check that suggests a safe fix to apply is SyntheticAccessor.
  • Metadata updates:
  • Various metadata, such as the service cast check, have been updated for lint checks to work with Android 9 (API level 28).
  • Warning if running lint on a new variant:
  • Lint now records which variant and version a baseline is recorded with, and lint warns you if you run it on a different variant than the one with which the baseline was created.
  • Improvements to existing lint checks:
  • Android Studio 3.2 includes many improvements to existing lint checks. For example, the resource cycle checks now apply to additional resource types, and the translation detector can find missing translations on the fly, in the editor.
  • Issue IDs more discoverable
  • Issue IDs are now shown in more places now, including in the Inspection Results window. This makes it easier for you to find the information that you need to enable or disable specific checks through lintOptions in build.gradle.
  • Data Binding V2:
  • Data Binding V2 is now enabled by default and is compatible with V1. This means that, if you have library dependencies that you compiled with V1, you can use them with projects using Data Binding V2. However, note that projects using V1 cannot consume dependencies that were compiled with V2.
  • D8 desugaring:
  • In Android Studio 3.1, we integrated the desugaring step into the D8 tool as an experimental feature, reducing overall build time. In Android Studio 3.2, desugaring with D8 is turned on by default.
  • New code shrinker:
  • R8 is a new tool for code shrinking and obfuscation that replaces ProGuard.
  • Changed default ABIs for multi-APKs:
  • When building multiple APKs that each target a different ABI, the plugin no longer generates APKs for the following ABIs by default: mips, mips64, and armeabi.
  • Improved editor features for CMake build files:
  • If you use CMake to add C and C++ code to your project, Android Studio now includes improved editor features to help you to edit your CMake build scripts, such as the following:
  • Syntax highlighting and code completion: The IDE now highlights and suggests code completion for common CMake commands. Additionally, you can navigate to a file by clicking it while pressing the Control key (Command on Mac).
  • Code reformatting: You can now use IntelliJ’s code reformat option to apply code styles to your CMake build scripts.
  • Safe refactoring: The IDE’s built-in refactoring tools now also check if you are renaming or deleting files that you reference in your CMake build scripts.
  • Navigate external header files:
  • When using the Project window in previous versions of Android Studio, you could navigate and inspect only the header files that belong to libraries you build from a local project. With this release, you can now also view and inspect header files included with external C/C++ library dependencies that you import into your app project.
  • If you already include C/C++ code and libraries in your project, open the Project window on the left side of the IDE by selecting View > Tool Windows > Project from the main menu and select Android from the drop-down menu. In the cpp directory, all headers that are within the scope of your app project are organized under the include node for each of your local C/C++ library dependencies, as shown below.
  • Native multidex enabled by default:
  • Previous versions of Android Studio enabled native multidex when deploying the debug version of an app to a device running Android API level 21 or higher. Now, whether you’re deploying to a device or building an APK for release, the Android plugin for Gradle enables native multidex for all modules that set minSdkVersion=21 or higher.
  • AAPT2 moved to Google's Maven repository:
  • Beginning with Android Studio 3.2, the source for AAPT2 (Android Asset Packaging Tool 2) is Google's Maven repository.
  • The new version of AAPT2 fixes many issues, including improved handling of non-ASCII characters on Windows.
  • Removal of configuration on demand:
  • The Configure on demand preference has been removed from Android Studio.
  • Android Studio no longer passes the --configure-on-demand argument to Gradle.
  • ADB Connection Assistant:
  • The new ADB Connection Assistant provides step-by-step instructions to help you set up and use a device over the Android Debug Bridge (ADB) connection.
  • To start the assistant, choose Tools > Connection Assistant.
  • The ADB Connection Assistant provides instructions, in-context controls, and a list of connected devices in a series of pages in the Assistant panel.
  • Emulator improvements:
  • You can now save and load snapshots of an AVD (Android virtual device) at any time in the Android Emulator, making it fast and easy to return an emulated device to a known state for testing. When you edit an AVD using the AVD Manager, you can specify which AVD snapshot to load when the AVD starts.
  • Controls for saving, loading, and managing AVD snapshots are now in the Snapshots tab in the emulator's Extended controls window.

New in Android Studio 3.3 Canary 11 (Sep 20, 2018)

  • This update includes the following new features and changes in behavior:
  • When using Gradle Kotlin DSL, you can now set source and target compatibility in compileOptions via the following syntax:
  • compileOptions {
  • sourceCompatibility = JavaVersion.VERSION_1_8
  • targetCompatibility = JavaVersion.VERSION_1_8
  • Improved incremental Java compilation when using annotation processors: This update decreases build times by improving support for incremental Java compilation when using annotation processors.
  • For projects that include Kotlin code: Incremental Java compilation is enabled by default, even if your project uses the data-binding or retro-lambda plugin.
  • For Java-only projects:
  • If the annotation processors you use all support incremental annotation processing, incremental Java compilation is enabled by default.
  • If however, one or more annotation processors do not support incremental builds, incremental Java compilation is not enabled. Instead, you can include the following flag in your gradle.properties file:
  • android.enableSeparateAnnotationProcessing=true
  • When you include this flag, Gradle executes the annotation processors in a separate task and allows the Android plugin to enable incremental mode for the Java compilation task.
  • Note: If your project uses the Lombok annotation processor, incremental Java compilation may be disabled.
  • Android App Bundles now support Instant Apps: Android Studio now includes support for building Android App Bundles with full support for Instant Apps. In other words, you can now build and deploy both installed app and Instant App experiences from a single Android Studio project, and include them in a single Android App Bundle.
  • If you’re creating a new Android Studio project using the Create New Project dialog, make sure you check the box next to Configure your project > This project will support instant apps.
  • Android Studio then creates a new app project as it normally would, but includes the following properties in your manifest to add instant app support to your app’s base module:
  • <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
  • <dist:module dist:instant="true" />
  • ...
  • </manifest>
  • You can then add dynamic feature modules that are instant app-enabled by selecting File > New > New Module from the menu bar and then selecting Instant Dynamic Feature Module from the Create New Module dialog.
  • If you already have a project that supports Dynamic Delivery, you can still add instant app-enabled dynamic features using the New Module wizard, as described above. However, keep in mind that doing so also enables instant app support for your app’s base module.
  • To deploy your app to a local device as an instant app, edit your run configuration and check the box next to General > Deploy as instant app.
  • Support for Clang-Tidy: Android Studio now includes support for static code analysis using Clang-Tidy for projects that include native code. To enable support for Clang-Tidy, you need to update your NDK to r18 or higher.
  • You can then enable or re-enable the inspections by opening the Settings or Preferences dialog, navigating to Editor > Inspections > C/C++ > General > Clang-Tidy. When selecting this inspection in the Settings or Preferences dialog, you can also see the list of Clang-Tidy checks the IDE enables and disables by default under the Option section of the right-most panel. To enable additional checks, simply add them to the list and click Apply.
  • To configure Clang-Tidy with additional options, click Configure Clang-Tidy Checks Options and add them in the dialog that opens.
  • This update includes fixes for several bugs, including the following:
  • Fixed an issue in Layout Editor that was causing java.lang.NoSuchMethodError when previewing a customized date.

New in Android Studio 3.3 Canary 10 (Sep 13, 2018)

  • This update includes the following new features and changes in behavior:
  • The Android Gradle plugin now requires Gradle 4.10 or higher.
  • Improved classpath dependency synchronization: When resolving dependencies on your runtime and compile time classpaths, the Android Gradle plugin attempts to fix certain downstream version conflicts for dependencies that appear across multiple classpaths.
  • Lazy task configuration: The Android Gradle plugin now uses a new task configuration API, which avoids the cost of creating and configuring tasks during Gradle’s configuration phase when those tasks are not going to be executed. This lets the plugin do less work when building just one of many variants in each module.
  • New projects now contain the /.idea/caches path in .gitignore.

New in Android Studio 3.3 Canary 9 (Sep 12, 2018)

  • This update includes the following new features and changes in behavior:
  • IntelliJ IDEA 2018.2.2: The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.2.2 release.
  • When you change the width or height of a view in the Layout Editor without specifying a unit, Android Studio now appends a default dp unit value in both the Layout Editor and the corresponding XML.
  • Gradle now copies extracted ProGuard rules to the local project build directory instead of the root project build directory. This ensures that tasks from different projects do not share the same output directory, which can lead to Gradle synchronization issues.
  • This update includes fixes for several bugs, including the following:
  • gradlew clean command was occasionally failing.
  • Android Studio wasn't correctly reporting some of the possible values for android:fontFamily.
  • Layout Editor Preview window wasn't scaling images properly.

New in Android Studio 3.2 RC (Sep 11, 2018)

  • What's New Assistant:
  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.
  • Android Jetpack:
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor:
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, and check the box next to Enable Navigation Editor.
  • AndroidX migration:
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
  • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Both flags are set to true when you use the Migrate to AndroidX command.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
  • Android App Bundle:
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • Sample data in Layout Editor:
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices:
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.
  • o Mountain View, CA on November 7-8, 2018.
  • New features in Android Studio Preview
  • Android Studio 3.1.4 has been released to the stable channel. Download it here.
  • Android Studio 3.3 is currently in the Canary and Dev channels.
  • Android Studio 3.2 is currently in the Beta channel.
  • This page provides a summary of the new features and changes in these preview versions.
  • For the latest news on releases, including a list of notable fixes in each release, also see the Release updates.
  • If you encounter any problems using a preview version of Android Studio, please let us know. Your bug reports help to make Android Studio better.
  • Android Studio 3.3
  • This section provides a summary of the new features and changes in Android Studio 3.3.
  • Show Gradle Daemons dialog
  • You can now view a list of active Gradle Daemons in Android Studio. To do this, double-press the Shift key to bring up the Search Everywhere dialog, type "Show Gradle Daemons", and click on the Show Gradle Daemons result that appears.
  • R8 enabled by default
  • R8 is a new tool for code shrinking and obfuscation that replaces ProGuard, and it's enabled by default. If you experience issues with R8, please report a bug You can disable R8 by adding the following to your project’s gradle.properties file:
  • android.enableR8 = false
  • Single-variant project sync
  • Syncing your project with your build configuration is an important step in letting Android Studio understand how your project is structured. However, this process can be time-consuming for large projects. If your project uses multiple build variants, you can now optimize project syncs by limiting them to only the variant you have currently selected.
  • When syncing your project using Android Studio 3.3 Canary 6 or higher, the IDE prompts you to enable this optimization.
  • To enable this optimization manually, click File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle on a Mac) and check Only resolve selected variants.
  • Note: This optimization currently supports projects that include only the Java programming language. If, for example, the IDE detects Kotlin or C++ code in your project, it does not automatically enable this optimization, and you should not enable it manually.
  • Updated Project Structure dialog
  • Android Studio 3.3 Canary 4 introduces updates to the Project Structure dialog. When you open the dialog by selecting File > Project Structure from the menu bar, you can manage how your project is configured with the following new features:
  • Visualize the actual structure of a project, as resolved by Gradle as a project sync. For example, you can visualize the dependency graph of each module.
  • Get notifications when new versions of your library dependencies are available.
  • Configure a project through the dialog UI, without manually editing build.gradle files.
  • Note: If your existing build configuration files include complex Groovy scripts, some features of the new PSD may not work as intended. Additionally, you can not edit build files written in Kotlin using the PSD.
  • Provide quick feedback
  • If you've opted into sharing usage statistics to help improve Android Studio, you'll see these two new icons in the status bar at the bottom of the IDE window:
  • Simply click the icon that best represents your current experience with the IDE. When you do so, the IDE sends usage statistics that allow the Android Studio team to better understand your sentiment. In some cases, such as when you indicate a negative experience with the IDE, you'll have an opportunity to provide additional feedback.
  • If you haven't already done so, you can enable sharing usage statistics by opening the Settings dialog (Preferences on a Mac), navigating to Appearance & Behavior > System Settings > Data Sharing, and checking Send usage statistics to Google.
  • Removal of options for C++ customization
  • The following options have been removed from the Customize C++ Support dialog:
  • Exceptions Support (-fexceptions)
  • Runtime Type Information Support (-ftti)
  • The respective behaviors are enabled for all projects created through Android Studio.
  • Android Studio 3.2
  • This section provides a summary of the new features and changes in Android Studio 3.2.
  • What's New Assistant
  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.
  • Android Jetpack
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, and check the box next to Enable Navigation Editor.
  • To learn more, read the Navigation Editor documentation.
  • AndroidX migration
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
  • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Both flags are set to true when you use the Migrate to AndroidX command.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
  • Android App Bundle
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • For more information, including instructions for building and analyzing an Android App Bundle, see Getting started with the Android App Bundle.
  • Sample data in Layout Editor
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.
  • To learn more, including how to test your Slice interactions, read the Slices getting started guide.
  • Kotlin 1.2.61:
  • Android Studio 3.2 bundles Kotlin 1.2.61, and the new Android SDK integrates better with Kotlin.
  • IntelliJ IDEA 2018.1.6:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.1.6 release.
  • Android profilers:
  • Try the following new Android Profiler features in Android Studio 3.2.
  • Sessions:
  • You can now save Profiler data as sessions to revisit and inspect later. (The profiler keeps your session data until you restart the IDE.)
  • After you deploy your app by selecting Run > Profile from the main menu, start a new session by clicking and selecting an app process from the dropdown menu, as shown below.
  • When you record a method trace or capture a heap dump, the IDE adds that data (along with your app's network activity) as a separate entry to the current session, and you can easily switch back and forth between recordings to compare data.
  • System Trace:
  • In the CPU Profiler, select the new System Trace configuration to inspect your device's system CPU and thread activity. This trace configuration is built on systrace and is useful for investigating system-level issues, such as UI jank.
  • While using this trace configuration, you can visually mark important code routines in the profiler timeline by instrumenting your C/C++ code with the native tracing API or your Java code with the Trace class.
  • Inspect JNI references in the Memory Profiler:
  • If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can now inspect memory allocations for your app’s JNI code using the Memory Profiler.
  • While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down menu above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • Import, export, and inspect memory heap dump files:
  • You can now import, export, and inspect .hprof memory heap dump files created with the Memory Profiler.
  • Import your .hprof file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the Memory Profiler as you would any other heap dump.
  • To save heap dump data to review later, use the Export Heap Dump button at the right of the Heap Dump entry in the Sessions pane. In the Export As dialog that appears, save the file with the .hprof file-name extension.
  • Record CPU activity during app startup:
  • You can now record CPU activity during your app's startup as follows:
  • Select Run > Edit Configurations from the main menu.
  • Under the Profiling tab of your desired run configuration, check the box next to Start recording a method trace on startup.
  • Select a CPU recording configuration to use from the dropdown menu.
  • Deploy your app to a device running Android 8.0 (API level 26) or higher by selecting Run > Profile.
  • Export CPU traces:
  • After you record CPU activity with the CPU Profiler, you can export the data as a .trace file to share with others or inspect later.
  • To export a trace after you’ve recorded CPU activity, do the following:
  • Right-click on the recording you want to export from the CPU timeline.
  • Select Export trace from the dropdown menu.
  • Navigate to where you want to save the file and click Save.
  • Import and inspect CPU trace files:
  • You can now import and inspect .trace files created with the Debug API or CPU Profiler. (Currently, you can't import System Trace recordings.)
  • Import your trace file by clicking Start new profiler session in the profiler’s Sessions:
  • pane and then selecting Load from file. You can then inspect its data in the CPU Profiler similar to how you normally would, but there are a few exceptions:
  • CPU activity is not represented along the CPU timeline.
  • The thread activity timeline indicates only where trace data is available for each thread and not actual thread states (such as running, waiting, or sleeping).
  • Record CPU activity using the Debug API:
  • You can now start and stop recording CPU activity in the CPU Profiler by instrumenting your app with the Debug API. After you deploy your app to a device, the profiler automatically starts recording CPU activity when your app calls startMethodTracing(String tracePath), and the profiler stops recording when your app calls stopMethodTracing(). While recording CPU activity that’s triggered using this API, the CPU Profiler shows Debug API as the selected CPU recording configuration.
  • Energy Profiler:
  • The Energy Profiler displays a visualization of the estimated energy usage of your app, as well as system events that affect energy usage, such as wakelocks, alarms, and jobs.
  • The Energy Profiler appears as a new row at the bottom of the Profiler window when you run your app on a connected device or Android Emulator running Android 8.0 (API 26) or higher.
  • Click the Energy row to maximize the Energy Profiler view. Place your mouse pointer over a bar in the timeline to see a breakdown of energy use by CPU, network, and location (GPS) resources, as well as relevant system events.
  • Lint checking:
  • Android Studio 3.2 includes many new and improved features for lint checking.
  • The new lint checks help you to find and identify common code problems, ranging from warnings about potential usability issues to high-priority errors regarding potential security vulnerabilities.
  • Lint checks for Java/Kotlin interoperability:
  • To make sure that your Java code interoperates well with your Kotlin code, new lint checks enforce the best practices described in the Kotlin Interop Guide. Examples of these checks include looking for the presence of Nullability annotations, use of Kotlin hard keywords, and placing lambda parameters last.
  • To enable these checks, click File > Settings (Android Studio > Preferences on Mac) to open the Settings dialog, navigate to the Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability section, and select the rules that you want to enable.
  • To enable these checks for command-line builds, add the following to your build.gradle file:
  • android {
  • lintOptions {
  • check 'Interoperability'
  • Lint checks for Slices:
  • New lint checks for Slices help to ensure that you are constructing Slices correctly. For example, lint checks warn you if you have not assigned a primary action to a Slice.
  • New Gradle target:
  • Use the new lintFix Gradle task to apply all of the safe fixes suggested by the lint check directly to the source code. An example of a lint check that suggests a safe fix to apply is SyntheticAccessor.
  • Metadata updates:
  • Various metadata, such as the service cast check, have been updated for lint checks to work with Android 9 (API level 28).
  • Warning if running lint on a new variant:
  • Lint now records which variant and version a baseline is recorded with, and lint warns you if you run it on a different variant than the one with which the baseline was created.
  • Improvements to existing lint checks:
  • Android Studio 3.2 includes many improvements to existing lint checks. For example, the resource cycle checks now apply to additional resource types, and the translation detector can now find missing translations on the fly, in the editor.
  • Issue IDs more discoverable:
  • Issue IDs are now shown in more places now, including in the Inspection Results window, making it easier for you to find the information that you need to enable or disable specific checks through lintOptions in build.gradle.
  • Data Binding V2:
  • Data Binding V2 is now enabled by default and is compatible with V1. This means that, if you have library dependencies that you compiled with V1, you can use them with projects using Data Binding V2. However, note that projects using V1 cannot consume dependencies that were compiled with V2.
  • D8 desugaring:
  • In Android Studio 3.1, we integrated desugaring step into the D8 tool as an experimental feature, reducing overall build time. Now, in Android Studio 3.2, desugaring with D8 is turned on by default.
  • New code shrinker:
  • R8 is a new tool for code shrinking and obfuscation that replaces ProGuard.
  • You can start using the preview version of R8 by including the following in your project’s gradle.properties file:
  • android.enableR8 = true
  • Changed default ABIs for multi-APKs:
  • When building multiple APKs that each target a different ABI, the plugin no longer generates APKs for the following ABIs by default: mips, mips64, and armeabi.
  • If you want to build APKs that target these ABIs, you must use NDK r16b or lower and specify the ABIs in your build.gradle file, as shown below:
  • splits {
  • abi {
  • include 'armeabi', 'mips', 'mips64'
  • ...
  • Improved editor features for CMake build files:
  • If you use CMake to add C and C++ code to your project, Android Studio now includes improved editor features while you edit your CMake build scripts, such as the following:
  • Syntax highlighting and code completion: The IDE now highlights and suggests code completion for common CMake commands. Additionally, you can navigate to a file by clicking it while pressing the Control key (Command on Mac).
  • Code reformatting: You can now use IntelliJ’s code reformat option to apply code styles to your CMake build scripts.
  • Safe refactoring: The IDE’s built-in refactoring tools now also check if you are renaming or deleting files that you reference in your CMake build scripts.
  • Navigate external header files:
  • When using the Project window in previous versions of Android Studio, you could navigate and inspect only the header files that belong to libraries you build from a local project. With this release, you can now also view and inspect header files included with external C/C++ library dependencies that you import into your app project.
  • If you already include C/C++ code and libraries in your project, open the Project window on the left side of the IDE by selecting View > Tool Windows > Project from the main menu and select Android from the drop-down menu. In the cpp directory, all headers that are within the scope of your app project are organized under the include node for each of your local C/C++ library dependencies, as shown below.
  • o Mountain View, CA on November 7-8, 2018.
  • New features in Android Studio Preview
  • Android Studio 3.1.4 has been released to the stable channel. Download it here.
  • Android Studio 3.3 is currently in the Canary and Dev channels.
  • Android Studio 3.2 is currently in the Beta channel.
  • This page provides a summary of the new features and changes in these preview versions.
  • For the latest news on releases, including a list of notable fixes in each release, also see the Release updates.
  • If you encounter any problems using a preview version of Android Studio, please let us know. Your bug reports help to make Android Studio better.
  • Android Studio 3.3
  • This section provides a summary of the new features and changes in Android Studio 3.3.
  • Show Gradle Daemons dialog
  • You can now view a list of active Gradle Daemons in Android Studio. To do this, double-press the Shift key to bring up the Search Everywhere dialog, type "Show Gradle Daemons", and click on the Show Gradle Daemons result that appears.
  • R8 enabled by default
  • R8 is a new tool for code shrinking and obfuscation that replaces ProGuard, and it's enabled by default. If you experience issues with R8, please report a bug You can disable R8 by adding the following to your project’s gradle.properties file:
  • android.enableR8 = false
  • Single-variant project sync
  • Syncing your project with your build configuration is an important step in letting Android Studio understand how your project is structured. However, this process can be time-consuming for large projects. If your project uses multiple build variants, you can now optimize project syncs by limiting them to only the variant you have currently selected.
  • When syncing your project using Android Studio 3.3 Canary 6 or higher, the IDE prompts you to enable this optimization.
  • To enable this optimization manually, click File > Settings > Experimental > Gradle (Android Studio > Preferences > Experimental > Gradle on a Mac) and check Only resolve selected variants.
  • Note: This optimization currently supports projects that include only the Java programming language. If, for example, the IDE detects Kotlin or C++ code in your project, it does not automatically enable this optimization, and you should not enable it manually.
  • Updated Project Structure dialog
  • Android Studio 3.3 Canary 4 introduces updates to the Project Structure dialog. When you open the dialog by selecting File > Project Structure from the menu bar, you can manage how your project is configured with the following new features:
  • Visualize the actual structure of a project, as resolved by Gradle as a project sync. For example, you can visualize the dependency graph of each module.
  • Get notifications when new versions of your library dependencies are available.
  • Configure a project through the dialog UI, without manually editing build.gradle files.
  • Note: If your existing build configuration files include complex Groovy scripts, some features of the new PSD may not work as intended. Additionally, you can not edit build files written in Kotlin using the PSD.
  • Provide quick feedback
  • If you've opted into sharing usage statistics to help improve Android Studio, you'll see these two new icons in the status bar at the bottom of the IDE window:
  • Simply click the icon that best represents your current experience with the IDE. When you do so, the IDE sends usage statistics that allow the Android Studio team to better understand your sentiment. In some cases, such as when you indicate a negative experience with the IDE, you'll have an opportunity to provide additional feedback.
  • If you haven't already done so, you can enable sharing usage statistics by opening the Settings dialog (Preferences on a Mac), navigating to Appearance & Behavior > System Settings > Data Sharing, and checking Send usage statistics to Google.
  • Removal of options for C++ customization
  • The following options have been removed from the Customize C++ Support dialog:
  • Exceptions Support (-fexceptions)
  • Runtime Type Information Support (-ftti)
  • The respective behaviors are enabled for all projects created through Android Studio.
  • Android Studio 3.2
  • This section provides a summary of the new features and changes in Android Studio 3.2.
  • What's New Assistant
  • A new assistant informs you about the latest changes in Android Studio.
  • The assistant opens when you start Android Studio after a fresh installation or update if it detects that there is new information to show. You can also open the assistant by choosing Help > What's new in Android Studio.
  • Android Jetpack
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provide a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, and check the box next to Enable Navigation Editor.
  • To learn more, read the Navigation Editor documentation.
  • AndroidX migration
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, see the AndroidX overview.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any Maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system also automatically converts those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
  • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Both flags are set to true when you use the Migrate to AndroidX command.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
  • Android App Bundle
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • For more information, including instructions for building and analyzing an Android App Bundle, see Getting started with the Android App Bundle.
  • Sample data in Layout Editor
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, Slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the Slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.
  • To learn more, including how to test your Slice interactions, read the Slices getting started guide.
  • Kotlin 1.2.61
  • Android Studio 3.2 bundles Kotlin 1.2.61, and the new Android SDK integrates better with Kotlin. For more information, see the Android Developers blog.
  • IntelliJ IDEA 2018.1.6
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.1.6 release.
  • Android profilers
  • Try the following new Android Profiler features in Android Studio 3.2.
  • Sessions
  • You can now save Profiler data as sessions to revisit and inspect later. (The profiler keeps your session data until you restart the IDE.)
  • After you deploy your app by selecting Run > Profile from the main menu, start a new session by clicking and selecting an app process from the dropdown menu, as shown below.
  • When you record a method trace or capture a heap dump, the IDE adds that data (along with your app's network activity) as a separate entry to the current session, and you can easily switch back and forth between recordings to compare data.
  • System Trace
  • In the CPU Profiler, select the new System Trace configuration to inspect your device's system CPU and thread activity. This trace configuration is built on systrace and is useful for investigating system-level issues, such as UI jank.
  • While using this trace configuration, you can visually mark important code routines in the profiler timeline by instrumenting your C/C++ code with the native tracing API or your Java code with the Trace class.
  • Inspect JNI references in the Memory Profiler
  • If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can now inspect memory allocations for your app’s JNI code using the Memory Profiler.
  • While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down menu above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • Import, export, and inspect memory heap dump files
  • You can now import, export, and inspect .hprof memory heap dump files created with the Memory Profiler.
  • Import your .hprof file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the Memory Profiler as you would any other heap dump.
  • To save heap dump data to review later, use the Export Heap Dump button at the right of the Heap Dump entry in the Sessions pane. In the Export As dialog that appears, save the file with the .hprof file-name extension.
  • Record CPU activity during app startup
  • You can now record CPU activity during your app's startup as follows:
  • Select Run > Edit Configurations from the main menu.
  • Under the Profiling tab of your desired run configuration, check the box next to Start recording a method trace on startup.
  • Select a CPU recording configuration to use from the dropdown menu.
  • Deploy your app to a device running Android 8.0 (API level 26) or higher by selecting Run > Profile.
  • Export CPU traces
  • After you record CPU activity with the CPU Profiler, you can export the data as a .trace file to share with others or inspect later.
  • To export a trace after you’ve recorded CPU activity, do the following:
  • Right-click on the recording you want to export from the CPU timeline.
  • Select Export trace from the dropdown menu.
  • Navigate to where you want to save the file and click Save.
  • Import and inspect CPU trace files
  • You can now import and inspect .trace files created with the Debug API or CPU Profiler. (Currently, you can't import System Trace recordings.)
  • Import your trace file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the CPU Profiler similar to how you normally would, but there are a few exceptions:
  • CPU activity is not represented along the CPU timeline.
  • The thread activity timeline indicates only where trace data is available for each thread and not actual thread states (such as running, waiting, or sleeping).
  • Record CPU activity using the Debug API
  • You can now start and stop recording CPU activity in the CPU Profiler by instrumenting your app with the Debug API. After you deploy your app to a device, the profiler automatically starts recording CPU activity when your app calls startMethodTracing(String tracePath), and the profiler stops recording when your app calls stopMethodTracing(). While recording CPU activity that’s triggered using this API, the CPU Profiler shows Debug API as the selected CPU recording configuration.
  • Energy Profiler
  • The Energy Profiler displays a visualization of the estimated energy usage of your app, as well as system events that affect energy usage, such as wakelocks, alarms, and jobs.
  • The Energy Profiler appears as a new row at the bottom of the Profiler window when you run your app on a connected device or Android Emulator running Android 8.0 (API 26) or higher.
  • Click the Energy row to maximize the Energy Profiler view. Place your mouse pointer over a bar in the timeline to see a breakdown of energy use by CPU, network, and location (GPS) resources, as well as relevant system events.
  • Lint checking
  • Android Studio 3.2 includes many new and improved features for lint checking.
  • The new lint checks help you to find and identify common code problems, ranging from warnings about potential usability issues to high-priority errors regarding potential security vulnerabilities.
  • Lint checks for Java/Kotlin interoperability
  • To make sure that your Java code interoperates well with your Kotlin code, new lint checks enforce the best practices described in the Kotlin Interop Guide. Examples of these checks include looking for the presence of Nullability annotations, use of Kotlin hard keywords, and placing lambda parameters last.
  • To enable these checks, click File > Settings (Android Studio > Preferences on Mac) to open the Settings dialog, navigate to the Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability section, and select the rules that you want to enable.
  • To enable these checks for command-line builds, add the following to your build.gradle file:
  • android {
  • lintOptions {
  • check 'Interoperability'
  • Lint checks for Slices
  • New lint checks for Slices help to ensure that you are constructing Slices correctly. For example, lint checks warn you if you have not assigned a primary action to a Slice.
  • New Gradle target
  • Use the new lintFix Gradle task to apply all of the safe fixes suggested by the lint check directly to the source code. An example of a lint check that suggests a safe fix to apply is SyntheticAccessor.
  • Metadata updates
  • Various metadata, such as the service cast check, have been updated for lint checks to work with Android 9 (API level 28).
  • Warning if running lint on a new variant
  • Lint now records which variant and version a baseline is recorded with, and lint warns you if you run it on a different variant than the one with which the baseline was created.
  • Improvements to existing lint checks
  • Android Studio 3.2 includes many improvements to existing lint checks. For example, the resource cycle checks now apply to additional resource types, and the translation detector can now find missing translations on the fly, in the editor.
  • Issue IDs more discoverable
  • Issue IDs are now shown in more places now, including in the Inspection Results window, making it easier for you to find the information that you need to enable or disable specific checks through lintOptions in build.gradle.
  • For more information, see Configure lint options with Gradle.
  • Data Binding V2
  • Data Binding V2 is now enabled by default and is compatible with V1. This means that, if you have library dependencies that you compiled with V1, you can use them with projects using Data Binding V2. However, note that projects using V1 cannot consume dependencies that were compiled with V2.
  • D8 desugaring
  • In Android Studio 3.1, we integrated desugaring step into the D8 tool as an experimental feature, reducing overall build time. Now, in Android Studio 3.2, desugaring with D8 is turned on by default.
  • New code shrinker
  • R8 is a new tool for code shrinking and obfuscation that replaces ProGuard. You can start using the preview version of R8 by including the following in your project’s gradle.properties file:
  • android.enableR8 = true
  • Changed default ABIs for multi-APKs
  • When building multiple APKs that each target a different ABI, the plugin no longer generates APKs for the following ABIs by default: mips, mips64, and armeabi.
  • If you want to build APKs that target these ABIs, you must use NDK r16b or lower and specify the ABIs in your build.gradle file, as shown below:
  • splits {
  • abi {
  • include 'armeabi', 'mips', 'mips64'
  • ...
  • Note: This behavior change is also included in Android Studio 3.1 RC1 and higher.
  • Improved editor features for CMake build files
  • If you use CMake to add C and C++ code to your project, Android Studio now includes improved editor features while you edit your CMake build scripts, such as the following:
  • Syntax highlighting and code completion: The IDE now highlights and suggests code completion for common CMake commands. Additionally, you can navigate to a file by clicking it while pressing the Control key (Command on Mac).
  • Code reformatting: You can now use IntelliJ’s code reformat option to apply code styles to your CMake build scripts.
  • Safe refactoring: The IDE’s built-in refactoring tools now also check if you are renaming or deleting files that you reference in your CMake build scripts.
  • Navigate external header files
  • When using the Project window in previous versions of Android Studio, you could navigate and inspect only the header files that belong to libraries you build from a local project. With this release, you can now also view and inspect header files included with external C/C++ library dependencies that you import into your app project.
  • If you already include C/C++ code and libraries in your project, open the Project window on the left side of the IDE by selecting View > Tool Windows > Project from the main menu and select Android from the drop-down menu. In the cpp directory, all headers that are within the scope of your app project are organized under the include node for each of your local C/C++ library dependencies, as shown below.
  • Native multidex enabled by default:
  • Previous versions of Android Studio enabled native multidex when deploying the debug version of an app to a device running Android API level 21 or higher. Now, whether you’re deploying to a device or building an APK for release, the Android plugin for Gradle enables native multidex for all modules that set minSdkVersion=21 or higher.
  • AAPT2 moved to Google's Maven repository:
  • Beginning with Android Studio 3.2, the source for AAPT2 (Android Asset Packaging Tool 2) is Google's Maven repository.
  • To use AAPT2, make sure that you have a google() dependency in your build.gradle file, as shown here:
  • buildscript {
  • repositories {
  • google() // here
  • jcenter()
  • dependencies {
  • classpath 'com.android.tools.build:gradle:3.2.0-rc03'
  • } allprojects {
  • repositories {
  • google() // and here
  • jcenter()
  • The new version of AAPT2 fixes many issues, including improved handling of non-ASCII characters on Windows.
  • Removal of configuration on demand:
  • The Configure on demand preference has been removed from Android Studio.
  • Android Studio no longer passes the --configure-on-demand argument to Gradle.
  • ADB Connection Assistant:
  • The new ADB Connection Assistant provides step-by-step instructions to help you set up and use a device over the Android Debug Bridge (ADB) connection.
  • To start the assistant, choose Tools > Connection Assistant.
  • The ADB Connection Assistant provides instructions, in-context controls, and a list of connected devices in a series of pages in the Assistant panel.
  • Emulator improvements:
  • You can now save and load snapshots of an AVD (Android virtual device) at any time in the Android Emulator, making it fast and easy to return an emulated device to a known state for testing. When you edit an AVD using the AVD Manager, you can specify which AVD snapshot to load when the AVD starts.
  • Controls for saving, loading, and managing AVD snapshots are now in the Snapshots tab in the emulator's Extended controls window.

New in Android Studio 3.3 Canary 8 (Aug 30, 2018)

  • Layout Editor was incorrectly reporting that a horizontal constraint was missing.

New in Android Studio 3.3 Canary 7 (Aug 24, 2018)

  • This update includes the following new features and changes in behavior:
  • You can now open the Android Virtual Device manager from the Welcome screen.
  • This update includes fixes for several bugs, including the following:
  • Project Structure Dialog was improperly formatting compileSdkVersion values.
  • Fixed several caching and performance issues related to data binding.
  • Fixed various issues with Lint.

New in Android Studio 3.3 Canary 6 (Aug 17, 2018)

  • Android Emulator 28.0.3 is now available in the Canary and Dev channels.
  • This update includes the following changes:
  • Snapshots:
  • Fixed crashes that could occur on snapshot load on boot and from the UI.
  • Optional experimental feature: File-backed Quickboot: To address concerns with slow emulator snapshot saves, we are experimenting with using a mapped file to act as the backing storage for guest RAM, so that saves and loads use the machinery of mmap() on the underlying host. This may improve performance.
  • There are two ways to use the feature:
  • Run the emulator from the command line with the -feature QuickbootFileBacked flag.
  • Add the following line to the file ~/.android/advancedFeatures.ini:
  • QuickbootFileBacked = on Create this file if it doesn't already exist.
  • By default, the Quickboot snapshot is saved on exit and loaded again every time, like suspending and waking a real device. However, if you would like to establish some state in the beginning and repeatedly load from that state, discarding changes in each session, add -no-snapshot-save to the command line, or go to Extended Controls > Snapshots > Settings and switch Auto-save emulator state? to No. (A restart of the emulator is required).
  • Insufficient memory message: If the emulator is unable to start due to insufficient free RAM, an error message is displayed. If you are on Windows and notice that there is RAM free, but you are still unable to start the emulator, the commit charge may have been exceeded. See this troubleshooting page.
  • Graphics: Most modern GPUs should now be able to launch the emulator with OpenGL ES 3.x enabled by default, and not require the activation of a separate GLESDynamicVersion feature flag.

New in Android Studio 3.3 Canary 5 (Aug 8, 2018)

  • This update includes the following new change in behavior:
  • versionCode is now required to be a positive number. Using a value less than 1 results in a build error.
  • This update includes fixes for several bugs, including the following:
  • Layout Editor was still handling input after losing focus.

New in Android Studio 3.1.4 (Aug 7, 2018)

  • The bundled Kotlin is now version 1.2.50.
  • New projects are created with kotlin-stdlib-jdk* artifacts, rather than with kotlin-stdlib-jre* artifacts, which are deprecated.
  • R8 parsing of ProGuard rules has been improved.
  • The following bugs have been fixed:
  • Attempting to run the Kotlin Main class failed with an error: "Error: Could not find or load main class..."
  • R8 entered an infinite loop while performing certain optimizations.
  • Using the Rerun failed tests command in the Run window sometimes incorrectly returned the message "No tests were found".
  • D8 did not correctly handle invoke-virtual instances, causing a crash with a VerifyError: invoke-super/virtual can't be used on private method
  • The Data Binding compiler was depending on an old version of com.android.tools:annotations. The compiler now uses tools annotations from the base project when available.
  • Android Studio crashed during fragment transitions when using profilers.
  • The debugger crashed when debugging a layout with a text box.
  • D8 failed to read some ZIP files with special characters.

New in Android Studio 3.2 Beta 5 (Jul 31, 2018)

  • This update includes the following change in behavior:
  • Android Studio now enforces a minimum Protobuf Gradle plugin version of 0.8.6.
  • This update includes the following bug fixes:
  • Translations Editor rows weren't aligned properly after scrolling.
  • Running another project using GradleBuild was causing java.lang.IllegalMonitorStateException: attempt to unlock read lock, not locked by current thread.
  • Layout styles were improperly requiring API level 17 instead of 15.
  • Android Studio wasn't properly navigating to certain styles with error message: "Cannot find declaration to go to".
  • Linter wasn't properly resolving some API level values.

New in Android Studio 3.3 Canary 4 (Jul 17, 2018)

  • The D8 compiler was improperly handling vector graphics.
  • The D8 compiler was causing a VerifyError.
  • The Recycle lint check was ignoring Kotlin.

New in Android Studio 3.3 Canary 3 (Jul 13, 2018)

  • This update includes the following change in behavior:
  • Gradle compatibility: Android Gradle Plugin 3.3.0-alpha3 and higher now requires Gradle 4.9 RC1 or higher.
  • This update includes fixes for several bugs, including the following:
  • Users were unable to open some trace files.
  • In some cases, users were unable to generate a signed APK.
  • Android Studio was not properly parsing the project Android SDK version even when specified in build.gradle.
  • Layout Inspector bounds indicators were incorrect.
  • Logcat printed all logs, even when filtering was enabled.

New in Android Studio 3.2 Build 181.4868252 Beta 3 (Jul 11, 2018)

  • What's New Assistant:
  • Android Studio 3.2 has a new Assistant panel, which informs you about the latest changes in Android Studio.
  • The panel opens when you start Android Studio if it detects that there is new information to show. You can also open the Assistant panel by choosing Help > What's new in Android Studio.
  • Android Jetpack:
  • Android Jetpack helps to accelerate Android development with components, tools, and guidance that eliminate repetitive tasks and enable you to more quickly and easily build high-quality, testable apps. Android Studio includes the following updates to support Jetpack. For more information, see the Jetpack documentation.
  • Navigation Editor:
  • The new Navigation Editor integrates with the navigation components of Android Jetpack to provides a graphical view for creating the navigation structure of your app. The Navigation Editor simplifies the design and implementation of navigation between in-app destinations.
  • In Android Studio 3.2, the Navigation Editor is an experimental feature. To enable the Navigation Editor, click File > Settings (Android Studio > Preferences on Mac), select the Experimental category in the left pane, and check the box next to Enable Navigation Editor.
  • To learn more, read the Navigation Editor documentation.
  • AndroidX migration:
  • As part of Jetpack, we are migrating the Android Support Libraries to a new Android extension library using the androidx namespace. For more information, read the AndroidX announcement.
  • Android Studio 3.2 helps you through this process with a new migration feature.
  • To migrate an existing project to AndroidX, choose Refactor > Migrate to AndroidX. If you have any maven dependencies that have not migrated to the AndroidX namespace, the Android Studio build system will also automatically convert those project dependencies.
  • The Android Gradle plugin provides the following global flags that you can set in your gradle.properties file:
  • android.useAndroidX: When set to true, this flag indicates that you want to start using AndroidX from now on. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • android.enableJetifier: When set to true, this flag indicates that you want to have tool support (from the Android Gradle plugin) to automatically convert existing third-party libraries as if they were written for AndroidX. If the flag is absent, Android Studio behaves as if the flag were set to false.
  • Set both flags to false if you do not yet want to migrate. (This is equivalent to not having the flags in the gradle.properties file.)
  • Both flags are set to true when you use the Migrate to AndroidX command or create a new project with minSdkVersion set to "P".
  • Important: In the current Android Studio 3.2 Canary version, there is a known issue that causes the android.useAndroidX flag to not be set when you use the Create New Project wizard. For now, you need to set the flag manually in your gradle.properties file.
  • If you want to start using AndroidX libraries immediately and don't need to convert existing third-party libraries, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.
  • Android App Bundle:
  • Android App Bundle is a new upload format that includes all of your app’s compiled code and resources, but defers APK generation and signing to the Google Play Store.
  • Google Play’s new app serving model, called Dynamic Delivery, then uses your app bundle to generate and serve optimized APKs for each user’s device configuration, so each user downloads only the code and resources they need to run your app. You no longer need to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads.
  • Additionally, you can add dynamic feature modules to your app project and include them in your app bundle. Through Dynamic Delivery, your users can then download and install your app’s dynamic features on demand.
  • To build a bundle, choose Build > Build Bundle(s) / APK(s) > Build Bundle(s).
  • For more information, including instructions for building and analyzing an Android App Bundle, see Getting started with the Android App Bundle.
  • Sample data in Layout Editor:
  • Many Android layouts have runtime data that can make it difficult to visualize the look and feel of a layout during the design stage of app development. You can now easily see a preview of your view in the Layout Editor filled with sample data. When you add a view, a button appears below the view in the Design window. Click this button to set the design-time view attributes. You can choose from a variety of sample data templates and specify the number of sample items with which to populate the view.
  • To try using sample data, add a RecyclerView to a new layout, click the design-time attributes button below the view, and choose a selection from the carousel of sample data templates.
  • Slices
  • Slices provide a new way to embed portions of your app's functionality in other user interface surfaces on Android. For example, slices make it possible to show app functionality and content in Google Search suggestions.
  • Android Studio 3.2 has a built-in template to help you to extend your app with the new Slice Provider APIs, as well as new lint checks to ensure that you're following best practices when constructing the slices.
  • To get started right-click a project folder and choose New > Other > Slice Provider.

New in Android Studio 3.3 Build 181.4869471 Canary 2 (Jul 3, 2018)

  • This update includes the following new features, updates, and changes in behavior:
  • The Exceptions Support (-fexceptions) and Runtime Type Information Support (-frtti) options have been removed from the Customize C++ Support page of the Create New Project wizard. These controls referred to features that are now always enabled.
  • The dexlib2 library has been updated to version 2.2.4.
  • Processing of Java resources has been moved to the R8 resource API from the Android Gradle Plugin (AGP).
  • The templates used when creating a new project have been updated to use the settings in proguard-android-optimize.txt, which enables several Kotlin optimizations, including some in R8 regarding lambda merging and null analysis.
  • This update includes fixes for several bugs, including the following:
  • In some cases, users of Android Studio 3.3 Canary 1 were incorrectly prompted to install previous builds in the Beta channel.
  • A rendering error in the Component Tree pane in the Layout Editor prevented the display of names of components.
  • Adding a new item using the New Image Asset dialog failed.
  • The CreateFullJarDebug task ran unnecessarily because Gradle never considered it to be up to date.
  • Dynamic features failed to build because of an incorrect Java library dependency.

New in Android Studio 3.3 Build 181.4861037 Canary 1 (Jun 28, 2018)

  • This update includes the following new features and changes in behavior:
  • The flag for disabling incremental dexing (useDexArchive) has been removed.
  • Android Studio 3.2 gave warnings when it found differences in versions between runtime and compile classpaths. Android Studio 3.3 reports these differences as errors.
  • Android Studio 3.3 Canary 1 includes Kotlin 1.2.50. The ability to update the Kotlin plugin in Android Studio is temporarily disabled; this is to prevent the installation of incompatible plugins while we resolve some issues.
  • The new getRawAndroidResources() method in the Gradle build API returns a file collection containing all resources for the variant. This method has been added primarily as a step toward migrating the Kotlin Android Extensions plugin to this API so that it will no longer need to use the MergeResources task. This new method is in incubation, meaning that it may be changed or removed without notice.
  • The new applicationIdTextResource method in the Gradle build API returns the application ID of a variant. For feature variants, this returns the resolved application ID from the application; for application variants, this method behaves the same as getApplicationId().
  • The Gradle signingReport task now also returns an SHA-256 hash.
  • The SDK Manager now reports the size of files downloaded during the update process.
  • This update includes fixes for several bugs, including the following:
  • Gradle was consuming large amounts of memory, leading to Java heap space errors, when packaging APKs.
  • Some JAR files could not be opened for the reading of their class files for dexing. This has been fixed by switching to a new ZIP file decoder.
  • Processing module-info.class during desugaring analysis caused failures with the message java.lang.IllegalArgumentException: Type without superclass: module-info. This file is now filtered out during desugaring analysis.
  • The Force HTTP setting in the Android Studio SDK updater was not working.
  • The SDK Manager command-line argument --package_file was not working.
  • Android Studio did not use the ANDROID_SDK_ROOT environment variable when installing the Android SDK.
  • The Android test plugin ignored the Gradle command-line parameters to select which tests to run.

New in Android Studio 3.2 Build 181.4860949 Beta 2 (Jun 28, 2018)

  • This update includes fixes for several bugs, including the following:
  • Resource configurations set with resConfigs were ignored when building an Android App Bundle.
  • Resource processing was incorrect in some cases when the minimum SDK target was specified to be the preview version.
  • Overrides set using the variant API were ignored when the version name and version code were published for dynamic feature modules for Android App Bundles.
  • D8 failed to read some ZIP files with special characters.
  • kotlin-stdlib-jre* artifacts are now deprecated, so kotlin-stdlib-jdk* are used instead.
  • Lint checks failed when an invalid issue ID was used in the XML lint configuration file.
  • Lint checks incorrectly reported some resources as unused if they were referenced through enum constructors.
  • It was impossible to disbale the Auto verify option for a deep link in the Navigation Editor.
  • Using the Rerun failed tests command in the Run window sometimes incorrectly returned the message "No tests were found".
  • A conflict between the Android Gradle Plugin and kapt caused errors with data binding. See Issue #110198434 for information about how other annotation processors may need to account for this issue.

New in Android Studio 3.2 Build 181.4847800 Beta 1 (Jun 22, 2018)

  • This update includes fixes for several bugs, including the following:
  • The Kotlin plugin didn't recognize the com.android.feature module, so you would mistakenly receive the following message when performing a Gradle sync: 'kotlin-android' expects one of the Android Gradle plugins to be applied to the project:...
  • The resource shrinker was mistakenly enabled for test variants, causing failures with the following error message: Execution failed for task ':app:transformClassesAndDexWithShrinkResForStagingAndroidTest'.
  • Android Studio gave superfluous warnings about folders generated by kapt.
  • Android Studio crashed because of an uncaught exception in the parsing of a malformed date and time.
  • The dynamic feature template incorrectly used just include where it should have used dist:include.

New in Android Studio 3.2 Build 181.4830125 Canary 18 (Jun 12, 2018)

  • This update includes fixes for the following bugs:
  • Inclusion of a test library dependency caused the Navigation Editor to block waiting for build completion.
  • The debugger crashed when debugging a layout with a text box.
  • OnePixelDivider had a myDisposable instance that was not cleared when the instance was disposed.
  • The default .gitignore didn't ignore .idea/caches/build_file_checksums.ser.
  • Some lint warnings were not suppressed when tools:ignore was used.
  • Android Studio crashed during fragment transitions when using profilers.
  • Android Studio failed to download SDK packages on macOS after the default language was changed from English to Hindi.

New in Android Studio 3.1.3 Build 173.4819257 (Jun 11, 2018)

  • This update to Android Studio 3.1 includes fixes for the following bugs:
  • Memory leaks caused Android Studio to become slow and unresponsive after you had been using the Layout Editor. This update includes fixes for most of these issues. We intend to release another update soon to address additional memory leaks.
  • Some applications built with D8 crashed on some Verizon Ellipsis tablets.
  • Installation of applications built with D8 failed with an INSTALL_FAILED_DEXOPT error on devices running Android 5.0 or 5.1 (API level 21 or 22).
  • Some applications that used the OkHttp library and were built with D8 crashed on devices running Android 4.4 (API level 19).
  • Android Studio sometimes failed to start, with a ProcessCanceledException during class initialization for com.intellij.psi.jsp.JspElementType.

New in Android Studio 3.2 Build 181.4823740 Canary 17 (Jun 7, 2018)

  • Among the bugs fixed in this update is a source of memory leaks that occur when you use the Layout Editor. For details of this fix and how it relates to other updates for Android Studio, see this post by Android Studio product manager James Lau.
  • Applications built with Navigation Architecture Component (android.arch.navigation) libraries crashed because the libraries were not being processed during AndroidX refactoring. This has been fixed.
  • Kotlin methods that return Unit in databinding layouts are now handled correctly.
  • Data Binding v2 compilation failed in cases of one module having a very large number of layouts. This has been fixed.
  • Test coverage data was incomplete when using Android Test Orchestrator. This is fixed.

New in Android Studio 3.2 Build 181.4802120 Canary 16 (May 30, 2018)

  • This update fixes several bugs, including the following:
  • Use of the Layout Editor caused Android Studio memory usage to continually increase. We have addressed a memory leak underlying this issue. If you have experienced this memory leak, please try Android Studio 3.2 Canary 16 and let us know if the issue is resolved for you.
  • Setting the android.useAndroidX and android.enableJetifier flags to true in your gradle.properties file forced dependencies on missing androidx.multidex artifacts. For information on AndroidX, see the Android Studio Preview release notes.
  • You couldn't scroll within the Select a system image list in the Virtual device configuration dialog box to select older system images.
  • Some Android virtual devices (AVDs) created from the command line could not be used by Android Emulator.
  • The Android Virtual Device Manager would fail to operate if it encountered a corrupt or badly formed .ini file.
  • By default, ProGuard was using the -dump option, which tells ProGuard to write out a text version of the processed bytecode to the build directory. This data can be hundreds of megabytes, and its unnecessary inclusion can make many processes slower.
  • Android Studio crashed when attempting to add or remove a module by importing a Gradle project.
  • The keyboard shortcut (Control + C or Command + C) to copy a screenshot from the Screen capture window did not copy the screenshot unless you had first clicked within the window.

New in Android Studio 3.2 Build 181.4773949 Canary 15 (May 18, 2018)

  • This update includes the following fixes:
  • R8 parsing of ProGuard rules has been improved.
  • Errors regarding ProGuard configuration have been improved.
  • Code coverage for Kotlin test cases was being reported as 0%. This bug is fixed.
  • Assets in folders with names beginning with an underscore (_) character were omitted. This bug is fixed.
  • The default .gitignore didn't ignore .idea/caches/build_file_checksums.ser. This bug is fixed.
  • Under some circumstances, you could not select items in the Preview pane of the Layout Editor. This bug is fixed.
  • The Network Profiler was incorrectly reformatting application header names to show all lower-case letters, even if the actual application header names used upper-case letters. This bug is fixed.
  • The enabled and disabled states of the Terminate app button have been made more obviously different from one another.
  • The UI for creating cloud projects has been replaced with a link to create a new Firebase project.

New in Android Studio 3.2 Build 181.4749738 Canary 13 (May 1, 2018)

  • IntelliJ IDEA 2018.1.1:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2018.1.1 release.
  • Android profilers:
  • Try the following new Android Profiler features on the latest version of Android Studio 3.2.
  • Sessions:
  • You can now save Profiler data as "sessions" to revisit and inspect later. (The profiler keeps your session data until you restart the IDE.)
  • After you deploy your app by selecting Run > Profile from the main menu, start a new session by clicking and selecting an app process from the dropdown menu, as shown below.
  • When you record a method trace or capture a heap dump, the IDE adds that data (along with your app's network activity) as a separate entry to the current session, and you can easily switch back and forth between recordings to compare data. To stop adding data to the current session, click .
  • System Trace:
  • In the CPU profiler, select the new System Trace configuration to inspect your device's system CPU and thread activity. This trace configuration is built on systrace and is useful for investigating system-level issues, such as UI jank.
  • While using this new trace configuration, you can visually mark important code routines in the profiler timeline by instrumenting your code with the Trace class.
  • Inspect JNI references in the Memory Profiler:
  • If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can now inspect memory allocations for your app’s JNI code using the Memory Profiler.
  • While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down menu above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • Record CPU activity during app startup
  • You can now record CPU activity during your app's startup as follows
  • Select Run > Edit Configurations from the main menu
  • Under the Profiling tab of your desired run configuration, check the box next to Start recording a method trace on startup
  • Select a CPU recording configuration to use from the dropdown menu
  • Deploy your app to a device running Android 8.0 (API level 26) or higher by selecting Run > Profile
  • Export CPU traces:
  • After you record CPU activity with the CPU profiler, you can export the data as a .trace file to share with others or inspect later
  • To export a trace after you’ve recorded CPU activity, do the following
  • Right-click on the recording you want to export from the CPU timeline
  • Select Export trace from the dropdown menu
  • Navigate to where you want to save the file and click Save
  • Import and inspect CPU trace files:
  • You can now import and inspect .trace files created with the Debug API or CPU profiler. (Currently, you can't import System Trace recordings.)
  • Import your trace file by clicking Start new profiler session in the profiler’s Sessions pane and then selecting Load from file. You can then inspect its data in the CPU profiler similar to how you normally would, but there are a few exceptions:
  • CPU activity is not represented along the CPU timeline.
  • The thread activity timeline indicates only where trace data is available for each thread and not actual thread states (such as running, waiting, or sleeping).
  • Record CPU activity using the Debug API:
  • You can now start and stop recording CPU activity in the CPU profiler by instrumenting your app with the Debug API. After you deploy your app to a device, the profiler automatically starts recording CPU activity when your app calls startMethodTracing(String tracePath), and the profiler stops recording when your app calls stopMethodTracing(). While recording CPU activity that’s triggered using this API, the CPU profiler shows Debug API as the selected CPU recording configuration.
  • Lint checking:
  • Lint checks for Java/Kotlin interoperability
  • To make sure your Java code interoperates well with your Kotlin code, new lint checks enforce the best practices described in the Kotlin Interop Guide. These checks includes looking for the presence of Nullability annotations, use of Kotlin hard keywords, placing lambda parameters last, and others.
  • To enable these checks, go to File > Preferences > Editor > Inspections and check the rules that you want to enable under Kotlin Interoperability, as shown below. You can then run the checks by selecting Analyze > Inspect Code from the main menu.
  • More new lint checks:
  • Beyond the Kotlin interoperability lint checks described in the previous section, Android Studio 3.2 implements 20 new lint checks to help you to find and identify common code problems. These new checks range from warnings about potential usability issues to high-priority errors regarding potential security vulnerabilities.
  • New Gradle target:
  • Use the new lintFix Gradle task to apply all of the safe fixes suggested by the lint check directly to the source code. An example of a lint check that suggests a safe fix to apply is SyntheticAccessor.
  • Metadata updates:
  • Various metadata, such as the service cast check, have been updated for lint checks to work with Android P Developer Preview
  • Warning if running lint on a new variant:
  • Lint now records which variant and version a baseline is recorded with, and lint warns you if you run it on a different variant than the one with which the baseline was created.
  • Improvements to existing lint checks:
  • Android Studio 3.2 includes many improvements to existing lint checks. For example, the resource cycle checks now apply to additional resource types, and the translation detector can now find missing translations on the fly, in the editor.
  • Issue IDs more discoverable:
  • Issue IDs are now shown in more places now, including in the Inspection Results window, making it easier for you to find the information that you need to enable or disable specific checks through lintOptions in build.gradle.
  • Data Binding V2:
  • Data Binding V2 is now enabled by default and is compatible with V1. This means that, if you have library dependencies that you compiled with V1, you can use them with projects using Data Binding V2. However, note that projects using V1 cannot consume dependencies that were compiled with V2.
  • New code shrinker:
  • R8 is a new tool for code shrinking and obfuscation that replaces ProGuard. You can start using the preview version of R8 by including the following in your project’s gradle.properties file: android.enableR8 = true
  • Changed default ABIs for multi-APKs:
  • When building multiple APKs that each target a different ABI, the plugin no longer generates APKs for the following ABIs by default: mips, mips64, and armeabi
  • Improved editor features for CMake build files:
  • If you use CMake to add C and C++ code to your project, Android Studio now includes improved editor features while you edit your CMake build scripts, such as:
  • Syntax highlighting and code-completion: The IDE now highlights and suggests code completion for common CMake commands. Additionally, you can navigate to a file by clicking it while pressing the Control key (or Command on MacOS).
  • Code reformatting: You can now use IntelliJ’s code reformat option to apply code styles to your CMake build scripts.
  • Safe refactoring: The IDE’s built-in refactoring tools now also check if you are renaming or deleting files that you reference in your CMake build scripts.
  • Navigate external header files:
  • When using the Project window in previous versions of Android Studio, you could navigate and inspect only the header files that belong to libraries you build from a local project. With this release, you can now also view and inspect header files included with external C/C++ library dependencies that you import into your app project.
  • If you already include C/C++ code and libraries in your project, open the Project window on the left side of the IDE by selecting View > Tool Windows > Project from the main menu and select Android from the drop-down menu. In the cpp directory, all headers that are within the scope of your app project are organized under the include node for each of your local C/C++ library dependencies,
  • Native multidex enabled by default:
  • Previous versions of Android Studio enabled native multidex when deploying the debug version of an app to a device running Android API level 21 or higher. Now, whether you’re deploying to a device or building an APK for release, the Android plugin for Gradle enables native multidex for all modules that set minSdkVersion=21 or higher
  • AAPT2 moved to Google's Maven repository:
  • Beginning with Android Studio 3.2 Canary 11, the source for AAPT2 (Android Asset Packaging Tool 2) is Google's Maven repository. The new version of AAPT2 fixes many issues, including improved handling of non-ASCII characters on Windows.

New in Android Studio 3.2 Build 181.4729833 Canary 12 (Apr 23, 2018)

  • Native multidex enabled by default
  • AAPT2 moved to Google's Maven repository

New in Android Studio 3.1.2 Build 173.4720617 (Apr 23, 2018)

  • This update to Android Studio 3.1 includes fixes for the following bugs:
  • In some cases, Android Studio hung indefinitely during exit.
  • Builds configured with source sets failed with the following message when Instant Run was enabled:
  • "The SourceSet name is not recognized by the Android Gradle Plugin."
  • When Instant Run was enabled, builds of new Kotlin projects failed when triggered by the Run command.
  • During editing of the build.gradle file, there was sometimes a noticeable delay between typing a character and the character appearing on the screen.
  • Build failures occurred during dexing in some projects with large numbers of modules or external dependencies, with the following error message:
  • "RejectedExecutionException: Thread limit exceeded replacing blocked worker"
  • The computation of the D8 main DEX list was not taking into account some reflective invocations.
  • This update also includes changes that make running lint checks from Gradle much faster in some scenarios.

New in Android Studio 3.2 Build 181.4720098 Canary 11 (Apr 16, 2018)

  • Record a method trace during app startup:
  • You can now record a method during app startup. Enable the feature by selecting Run > Edit Configurations
  • from the main menu and, under the Profile tab of your desired run configuration, checking the box next to
  • Start recording a method trace on startup. After that, simply deploy your app to a device running Android 8.0
  • or higher by selecting Run > Profile.
  • Lint checks to ensure Java code interops well with Kotlin (available since Canary 10):
  • To make sure your Java code interoperates well with your Kotlin code, new Lint checks enforce the best practices described in the Kotlin Interop Guide. This includes checking for the presence of Nullability annotations, use of Kotlin hard keywords, placing lambda parameters last, and others.
  • To enable these checks, go to File > Preferences > Editor > Inspections and check the rules that you want to enable under Kotlin Interoperability. Once you have checked the rules you would like to enable, the new checks will run when you run your code inspections (Analyze > Inspect Code…). To enable these checks from the command-line builds, add the following line in your build.gradle file: android { lintOptions { check 'Interoperability' }}
  • General bug fixes:
  • Issue#77240636: Solid black-filled areas are missing in a vector drawable imported from SVG
  • Issue#77303892: Losing alpha channel in Image Asset Studio on Windows with Russian Locale.
  • Issue#77522540: Deprecation for 'compile' points people to 'implementation'
  • Issue#68977385: Lambda causes crash in specific situation
  • Issue#72637989: Build does not run with instant run enabled on AS 3.1 Beta 1
  • Issue#74961584: Studio disables sdcard whenever data partition is resized
  • Issue#74493350: Apply fix to multiple files by one operation
  • Issue#37075533: Lint check to avoid compiler-generated synthetic accessor methods & constructors.
  • Issue#76404689: Advanced profiling causes device to crash with StackOverflowError
  • Issue#72872264: Studio Freeze (ANR)
  • Issue#76456341: Multiline log messages should be indented consistently between the Logcat and Run windows
  • Issue#73048570: Translations Editor - deleting keys does not update list.

New in Android Studio 3.2 Build 181.4705630 Canary 10 (Apr 9, 2018)

  • Navigate External Header Files:
  • When using the Project window in previous versions of Android Studio, you could navigate to and inspect only the header files that belong to libraries you build locally. With this release, you can now also view and inspect header files included with external C/C++ library dependencies that you import into your app.If you already include C/C++ code and libraries in your project, open the Project window on the left side of the IDE (click View > Tool Windows > Project) and make sure you select Android from the drop-down menu. In your project’s cpp/ directory, all headers that are within the scope of your app are organized under the include node for each of your local C/C++ library projects
  • General bug fixes:
  • Issue#76198464: Material Design icons picker doesn't launch but throws
  • Issue#75425826: Improve min sdk conflict fix
  • Issue#76004637: Update to Proguard 6.0.1
  • Issue#67492130: Remove repeated Java 8 language features support message
  • Issue#73602296: Implement BuildableArtifact API
  • Issue#73576747: JSR/RET are not supported with computeFrames option
  • Issue#72811718: java.io.IOException: Failed to find byte code for android/util/IntProperty
  • Issue#73132906: Attaching native debugger is very slow and locks up Android Studio for multi-module projects
  • Issue#75974712: Warn if canvas.getWidth/getHeight are used in View#onDraw, Drawable#draw
  • Issue#74352259: Android Studio does not see test project dependencies

New in Android Studio 3.2 Build 173.4688006 Canary 9 (Apr 3, 2018)

  • General bug fixes: This update includes fixes for the following public issues:
  • Issue#37133944: An empty path string should not be created when importing a vector drawable from SVG
  • Issue#74428305: Android P AVD Has "Android null (Google APIs)" as Target
  • Issue#73493534: Built-in shrinker Proguard rules parser
  • Issue#73957018: Stop min sdk support from manifest when building via gradle
  • Issue#74240422: APK Analyzer warning opening R8 generated mapping file
  • Issue#74278841: Jar resources are stripped and cannot be retained
  • Issue#74388337: False positive "SharedPreferences.edit() without a corresponding commit() or apply() call"
  • Issue#74469014: Non-ASCII characters are not handled well in the profiler
  • Issue#72798630: Unable to find module with Gradle path
  • Issue#73864693: LayoutInspector throws java.lang.StringIndexOutOfBoundsException: String index out of range: 610
  • Issue#71817695: Adding "year" to logcat time output

New in Android Studio 3.1 Build 173.4670197 (Mar 27, 2018)

  • Android Studio 3.1.0 is a major release that includes a variety of new features and improvements.
  • Coding/IDE:
  • The core Android Studio IDE has been updated with improvements from IntelliJ IDEA through the 2017.3.3 release. Improvements include better control flow analysis for collections and strings, improved nullability inference, new quick fixes, and much more.
  • SQL editing improvements with Room:
  • When you use the Room database library, you can take advantage of several improvements to SQL editing:
  • Code completion within a Query understands SQL tables (entities), columns, query parameters, aliases, joins, subqueries, and WITH clauses.
  • SQL syntax highlighting now works.
  • You can right-click a table name in SQL and rename it, which also rewrites the corresponding Java or Kotlin code (including, for example, the return type of the query). Renaming works in the other direction, too, so renaming a Java class or field rewrites the corresponding SQL code.
  • SQL usages are shown when using Find usages (right-click and choose Find usages from the context menu).
  • To navigate to an SQL entity's declaration in Java or Kotlin code, you can hold Control (Command on Mac) while clicking the entity.
  • For information on using SQL with Room, see Save data in a local database using Room.
  • Updates to data binding:
  • This update includes several improvements for data binding:
  • You can now use a LiveData object as an observable field in data binding expressions. The ViewDataBinding class now includes a new setLifecycle() method that you use to observe LiveData objects.
  • The ObervableField class can now accept other Observable objects in its constructor.
  • You can preview a new incremental compiler for your data binding classes. For details of this new compiler and instructions for enabling it, see Data Binding Compiler V2.
  • Benefits of the new compiler include the following:
  • ViewBinding classes are generated by the Android Plugin for Gradle before the Java compiler.
  • Libraries keep their generated binding classes when the app is compiled, rather than being regenerated each time. This can greatly improve performance for multi-module projects.
  • Compiler and Gradle:
  • D8 is the default DEX compiler:
  • The D8 compiler is now used by default for generating DEX bytecode.
  • This new DEX compiler brings with it several benefits, including the following:
  • Faster dexing
  • Lower memory usage
  • Improved code generation (better register allocation, smarter string tables)
  • Better debugging experience when stepping through code
  • You don't need to make any changes to your code or your development workflow to get these benefits, unless you had previously manually disabled the D8 compiler. If you set android.enableD8 to false in your gradle.properties, either delete that flag or set it to true:
  • android.enableD8=true
  • Incremental desugaring:
  • For projects that use Java 8 language features, incremental desugaring is enabled by default, which can improve build times.
  • Desugaring converts syntactic sugar into a form that the compiler can process more efficientl
  • You can disable incremental desugaring by specifying the following in your project's gradle.properties file:
  • android.enableIncrementalDesugaring=false
  • In-process desugaring in D8 (preview):
  • By default, desugaring of Java 8 features is done in a separate process. You can enable integrated desugaring in D8 by adding the following in your project's gradle.properties file:
  • android.enableD8.desugaring=true
  • This in-process desugaring in D8 should decrease compile time for projects using Java 8 features.
  • Simplified output window:
  • The Gradle Console has been replaced with the Build window, which has Sync and Build tabs.
  • For details about how to use the new, simplified Build window, see Monitor the build process.
  • Batch updates and indexing concurrency:
  • The Gradle sync and IDE indexing processes are now much more efficient, reducing time wasted on many redundant indexing operations.
  • C++ and LLDB:
  • We have made many quality and performance improvements in the coding, syncing, building, and debugging phases of C++ development. Improvements include the following:
  • If you work with large C++ projects, you should notice a significant improvement in the reduction of time spent building symbols. Sync time is also greatly reduced for large projects.
  • Performance when building and syncing with CMake has been improved through more aggressive reuse of cached results.
  • The addition of formatters ("pretty printers") for more C++ data structures makes LLDB output easier to read.
  • LLDB now works with only Android 4.1 (API level 16) and higher.
  • Note: Native debugging with Android Studio 3.0 or greater does not work on 32-bit Windows. If you are using 32-bit Windows and need to debug native code, use Android Studio 2.3.
  • Kotlin:
  • Kotlin upgraded to version 1.2.30
  • Android Studio 3.1 includes Kotlin version 1.2.30.
  • Kotlin code now analyzed with command-line lint check
  • Running lint from the command line now analyzes your Kotlin classes.
  • For each project that you would like to run lint on, Google's Maven repository must be included in the top-level build.gradle file. The Maven repository is already included for projects created in Android Studio 3.0 and higher.
  • Performance tools:
  • Sample native C++ processes with CPU Profiler:
  • The CPU Profiler now includes a default configuration to record sampled traces of your app's native threads. You can use this configuration by deploying your app to a device running Android 8.0 (API level 26) or higher and then selecting Sampled (Native) from the CPU Profiler's recording configurations dropdown menu. After that, record and inspect a trace as you normally would.
  • You can change default settings, such as the sampling interval, by creating a recording configuration.
  • To switch back to tracing your Java threads, select either a Sampled (Java) or Instrumented (Java) configuration.
  • Filter CPU traces, memory allocation results, and heap dumps
  • The CPU Profiler and Memory Profiler include a search feature that allows you to filter results from recording a method trace, memory allocations, or heap dump.
  • To search, click Filter in the top-right corner of the pane, type your query, and press Enter.
  • Tip: You can also open the search field by pressing Control + F (Command + F on Mac).
  • In the CPU Profiler's Flame Chart tab, call stacks that include methods related to your search query are highlighted and moved to the left side of the chart.
  • For more information on filtering by method, class, or package name, see Record and inspect method traces.
  • Request tab in the Network Profiler:
  • The Network Profiler now includes a Request tab that provides details about network requests during the selected timeline. In previous versions, the Network Profiler only provided information about network responses.
  • Thread View in the Network Profiler:
  • After selecting a portion of the timeline in the Network Profiler, you can select one of the following tabs to see more detail about the network activity during that timeframe:
  • Connection View: Provides the same information as previous versions of Android Studio—it lists files that were sent or received during the selected portion of the timeline across all of your app's CPU threads. For each request, you can inspect the size, type, status, and transmission duration.
  • Thread View: Displays network activity of each of your app's CPU threads. This view allows you to inspect which of your app's threads are responsible for each network request.
  • Layout Inspector:
  • The Layout Inspector gained new features, including some functionality previously provided by the deprecated Hierarchy Viewer and Pixel Perfect tools:
  • Zoom buttons and keyboard shortcuts for navigating and inspecting layouts
  • Reference grid overlay
  • Ability to load a reference image and use it as an overlay (useful for comparing your layout with a UI mockup)
  • Render subtree preview to isolate a view in a complex layout
  • Layout Editor:
  • The Palette in the Layout Editor has received many improvements:
  • Reorganization of categories for views and layouts.
  • New Common category for views and layouts, which you can add to with a Favorite command.
  • Improved search for views and layouts.
  • New commands for opening documentation for a specific view or layout element.
  • You can use the new Convert view command in the Component tree or design editor to convert a view or layout to another type of view or layout.
  • You can now easily create constraints to items near the selected view using the new Create a connection buttons in the view inspector at the top of the Attributes window.
  • Run and Instant Run:
  • The behavior of the Use same selection for future launches option in the Select deployment target dialog has been made more consistent. If the Use same selection option is enabled, then the Select deployment target dialog opens only the first time that you use the Run command until the selected device is no longer connected.
  • When targeting a device running Android 8.0 (API level 26) or higher, Instant Run can deploy changes to resources without causing an application restart. This is possible because the resources are contained in a split APK.
  • Emulator:
  • For details of what's new and changed in the emulator since Android Studio 3.0, see the Android Emulator release notes from version 27.0.2 through version 27.1.12.
  • Major improvements include the following:
  • Quick Boot snapshots for saving of emulator state and faster start, with the ability to use the Save now command to save a custom start state.
  • Windowless emulator screen.
  • System images for Android 8.0 (API level 26), Android 8.1 (API level 27), and Android P Developer Preview.
  • User interface and user experience improvements:
  • More tooltips, keyboard shortcuts, and helpful messages
  • We have added tooltips and helpful message overlays in many places throughout Android Studio.
  • To see keyboard shortcuts for many commands, just hold the mouse pointer over a button until the tooltip appears.
  • Tools > Android menu removed:
  • The Tools > Android menu has been removed. Commands that were previously under this menu have been moved.
  • Many commands moved to directly under the Tools menu.
  • The Sync project with gradle files command moved to the File menu.
  • The Device Monitor command has been removed, as described below.
  • Device Monitor available from the command line:
  • In Android Studio 3.1, the Device Monitor serves less of a role than it previously did. In many cases, the functionality available through the Device Monitor is now provided by new and improved tools.
  • See the Device Monitor documentation for instructions for invoking the Device Monitor from the command line and for details of the tools available through the Device Monitor.

New in Android Studio 3.2 Build 173.4670218 Canary 8 (Mar 27, 2018)

  • Android Studio 3.2 Canary 8 is now available in the Canary and Dev channels. Inspect JNI References in the Memory Profiler: If you deploy your app to a device running Android 8.0 (API level 26) or higher, you can inspect memory allocations for your app’s JNI code using the Memory Profiler. While your app is running, select a portion of the timeline that you want to inspect and select JNI heap from the drop-down above the class list, as shown below. You can then inspect objects in the heap as you normally would and double-click objects in the Allocation Call Stack tab to see where the JNI references are allocated and released in your code.
  • General bug fixes: This update includes fixes for the following public issues:
  • Issue#72614343: Gradle build fails to recover from invalid cached library

New in Android Studio 3.1 Build 173.4658569 RC 3 (Mar 20, 2018)

  • This update includes fixes for the following public issues:
  • Issue#73800636: Main dex list not tracing all classes annotated with runtime annotations
  • Issue#70909581: okhttp fails sporadically on android 4.x mediatek devices
  • Issue#73122455: External CMake building broken by using Gradle plugin newer than 3.0.1

New in Android Studio 3.2 Build 173.4658582 Canary 7 (Mar 20, 2018)

  • Smart editor features for CMake build files: If you use CMake to add C and C++ code to your project, Android Studio now includes smart editor features while you edit your CMake build scripts, such as:
  • Syntax highlighting and code-completion: The IDE now highlights and suggests code completion for common CMake commands. Additionally, you can navigate to a file by clicking it while pressing the Control key (or Command on MacOS).
  • You can now use IntelliJ’s code reformat option to apply code styles to your CMake build scripts.
  • Safe file renaming and deletion: The IDE’s built-in refactoring tools now also check if you are renaming or deleting files that you reference in your CMake build scripts.
  • General bug fixes: This update includes fixes for the following public issues:
  • Issue#73335428: Relative path for ANDROID_HOME breaks the build
  • Issue#37104761: Enforce check that targetSdkVersion is not less than minSdkVersion
  • Issue#37095605: AS/Lint should check for non-localized version of drawable resource
  • Issue#73981396: Request: add warning when using Locale.getDefault() inside static-final variable
  • Issue#74128292: Kotlin import flagged for InlinedApi despite constant used correctly
  • Issue#74225292: Unit test configuration by context for entire directory in Kotlin is creating duplicate
  • Issue#64727495: Use dependency on the latest Espresso library.
  • Issue#37119265: Do not use deprecated version of LargeTest
  • Issue#70578119: C++ compiler incorrectly reporting STL type errors

New in Android Studio 3.1.0.14 Build 173.4640767 RC 2 (Mar 12, 2018)

  • Issue#73730693: Action search breaks when APK plugin disabled.
  • Issue#73450636: D8 desugaring fails with Espresso 3.0.2-alpha1
  • Issue#73183204: Can't build w/ 3.1 beta 1 or 2 - Could not get unknown property 'manifestFile' for task
  • Issue#73563032: Lint is detecting a "CheckResult" issue when using lambdas in Kotlin
  • Issue#73397414: "Run->Run App" quits right after Gradle (trying to) build without messages or launching app.

New in Android Studio 3.1 Build 173.4615496 Beta 4 (Feb 26, 2018)

  • Issue#72752164: Android Studio 3.1 creates native libraries twice as big as 3.0!
  • Issue#70937387: AS Build: 3.1 Canary 6 kills the "Key Password".

New in Android Studio 3.1 Build 173.4559767 Canary 9 (Jan 25, 2018)

  • Includes general bug fixes. Important: On January 22, we released and then rolled back a version of Android Studio 3.1 Canary 9 due to a bug in the update mechanism. If you already accepted that version of Canary 9, you should still update to this latest version.

New in Android Studio 3.1 Build 173.4529993 Canary 8 (Jan 13, 2018)

  • This release fixes an issue that broke Kotlin annotation processors for projects that enabled Data Binding.

New in Android Studio 3.1 Build 173.4524538 Canary 7 (Jan 8, 2018)

  • Android Studio 3.1 Canary 7 is now available in the Canary and Dev channels, and includes general bug fixes.

New in Android Studio 3.1 Build 171.4474551 Canary 5 (Dec 6, 2017)

  • Android Studio 3.1 Canary 5 is now available in the Canary and Dev channels, and includes general bug fixes and the following new features:
  • Includes in-process desugaring to decrease compile time when using Java 8 language features. To try this preview feature, set android.enableD8.desugaring=true in your project’s gradle.properties file.
  • In the Network Profiler, a new Request tab provides network request details, as shown below.
  • In the CPU Profiler, a new search feature allows you to highlight relevant trace results in Trace Pane, as shown below. This feature is also available in the Memory Profiler to filter the results of your memory allocations or heap dumps. To enter a search query, click the icon at the top-right corner of the pane and then click on the search box.
  • In the CPU profiler Flame Chart pane, call stacks that include the search query are highlighted and moved to the left side of the chart.
  • Known Issue: In the Top Down and Bottom Up CPU profiler charts, relevant search results are prioritized above others when a column is sorted in a descending order. However, this prioritization does not take place when columns are sorted in an ascending order.
  • Known Issue: When pausing while entering a search query in the CPU profiler, the IDE updates the results with your query and disables the cursor within the search field. That is, you need to click into the search field again to continue typing.

New in Android Studio 3.1 Build 171.4444016 Canary 4 (Nov 18, 2017)

  • General bug fixes

New in Android Studio 3.0 Build 171.4408382 (Oct 26, 2017)

  • Android Plugin for Gradle 3.0.0:
  • The new Android plugin for Gradle includes a variety of improvements and new features, but it primarily improves build performance for projects that have a large number of modules. When using the new plugin with these large projects, you should experience the following:
  • Faster build configuration times due to new delayed dependency resolution.
  • Variant-aware dependency resolution for only the projects and variants you are building.
  • Faster incremental build times when applying simple changes to code or resources.
  • This version also includes the following:
  • Support for Android 8.0.
  • Support for building separate APKs based on language resources.
  • Support for Java 8 libraries and Java 8 language features (without the Jack compiler).
  • Support for Android Test Support Library 1.0 (Android Test Utility and Android Test Orchestrator).
  • Improved ndk-build and cmake build speeds.
  • Improved Gradle sync speed.
  • AAPT2 is now enabled by default.
  • Using ndkCompile is now more restricted. You should instead migrate to using either CMake or ndk-build to compile native code that you want to package into your APK. To learn more, read Migrate from ndkcompile.
  • If you're ready to upgrade to the new plugin, see Migrate to Android Plugin for Gradle 3.0.0.
  • Kotlin support:
  • As announced at Google I/O 2017, the Kotlin programming language is now officially supported on Android. So with this release, Android Studio includes Kotlin language support for Android development.
  • You can incorporate Kotlin into your project by converting a Java file to Kotlin (click Code > Convert Java File to Kotlin File) or by creating a new Kotlin- enabled project using the New Project wizard.
  • Java 8 language features support:
  • You can now use certain Java 8 language features and consume libraries built with Java 8. Jack is no longer required, and you should first disable Jack to use the improved Java 8 support built into the default toolchain.
  • To update your project to support the new Java 8 language toolchain, update the Source Compatibility and Target Compatibility to 1.8 in the Project Structure dialog (click File > Project Structure). To learn more, read how to use Java 8 language features.
  • Android Profiler:
  • The new Android Profiler replaces the Android Monitor tool and provides a new suite of tools to measure your app's CPU, memory, and network usage in realtime. You can perform sample-based method tracing to time your code execution, capture heap dumps, view memory allocations, and inspect the details of network-transmitted files.
  • To open, click View > Tool Windows > Android Profiler (or click Android Profiler in the toolbar).
  • The event timeline at the top of the window shows touch events, key presses, and activity changes so you have more context to understand other performance events in the timeline.
  • Note: The Logcat view also moved to a separate window (it was previously inside Android Monitor, which was removed).
  • From the Android Profiler's overview timeline, click on the CPU, MEMORY, or NETWORK timelines to access the corresponding profiler tools.
  • CPU Profiler:
  • The CPU Profiler helps you analyze the CPU thread usage of your app by triggering a sample or instrumented CPU trace. Then, you can troubleshoot CPU performance issues using a variety of data views and filters.
  • Memory Profiler:
  • The Memory Profiler helps you identify memory leaks and memory churn that can lead to stutter, freezes, and even app crashes. It shows a realtime graph of your app's memory use, lets you capture a heap dump, force garbage collections, and track memory allocations.
  • Network Profiler:
  • The Network Profiler allows you to monitor the network activity of your app, inspect the payload of each of your network requests, and link back to the code that generated the network request.
  • APK profiling and debugging:
  • Android Studio now allows you to profile and debug any APK without having to build it from an Android Studio project—as long as the APK is built to enable debugging and you have access to the debug symbols and source files.
  • To get started, click Profile or debug APK from the Android Studio Welcome screen. Or, if you already have a project open, click File > Profile or debug APK from the menu bar. This displays the unpacked APK files, but it does not decompile the code. So, to properly add breakpoints and view stack traces, you need to attach Java source files and native debug symbols.
  • Device File Explorer:
  • The new Device File Explorer allows you to inspect your connected device's filesystem, and transfer files between the device and your computer. This replaces the filesystem tool available in DDMS.
  • To open, click View > Tool Windows > Device File Explorer.
  • Instant Apps support:
  • New support for Android Instant Apps allows you to create Instant Apps in your project using two new module types: Instant App modules and Feature modules (these require that you install the Instant Apps Development SDK).
  • Android Studio also includes a new modularize refactoring action to help you add support for Instant Apps in an existing project. For example, if you want to refactor your project to place some classes in an Instant App feature module, select the classes in the Project window and click Refactor > Modularize. In the dialog that appears, select the module where the classes should go and click OK.
  • And when you're ready to test your Instant App, you can build and run your Instant App module on a connected device by specifying the Instant App's URL within the run configuration launch options: Select Run > Edit Configurations, select your Instant App module, and then set the URL under Launch Options.
  • Android Things modules:
  • New Android Things templates in the New Project and New Module wizards to help you start developing for Android-powered IOT devices.
  • Adaptive Icons wizard:
  • Image Asset Studio now supports vector drawables and allows you to create adaptive launcher icons for Android 8.0 while simultaneously creating traditional icons ("Legacy" icons) for older devices.
  • To start, right-click on the res folder in your project, and then click New > Image Asset. In the Asset Studio window, select Launcher Icons (Adaptive and Legacy) as the icon type.
  • Note: You must set compileSdkVersion to 26 or higher to use adaptive launcher icons.
  • Support for font resources:
  • To support the new font resources in Android 8.0, Android Studio includes a font resources selector to help bundle fonts into your app or configure your project to download the fonts on the device (when available). The layout editor can also preview the fonts in your layout.
  • To try downloadable fonts, ensure that your device or emulator is running Google Play Services v11.2.63 or higher. For more information, read about Downloadable Fonts.
  • Firebase App Indexing Assistant:
  • The Firebase Assistant has been updated with a new tutorial to test App Indexing. To open the Assistant, select Tools > Firebase. Then select App Indexing > Test App Indexing.
  • The tutorial includes new buttons to test your public and personal content indexing:
  • In step 2, click Preview search results to verify that your URLs are showing up in Google Search results.
  • In step 3, click Check for errors to verify that the indexable objects in your app have been added to the personal content index.
  • Android App Links Assistant:
  • The App Links Assistant has been updated with the following new capabilities:
  • Add URL tests for each URL mapping to be sure your intent filters handle real-world URLs.
  • You can also define these URL tests by hand using the <tools:validation> tag described below.
  • Create a Digital Asset Links file with the appropriate object entry to support Google Smart Lock, and add the corresponding asset_statements <meta-data> tag to your manifest file.
  • URL intent-filter validator:
  • Android Studio now supports a special tag in the manifest file that allows you to test your intent filter URLs. These are the same tags that the App Links Assistant can create for you.
  • To declare a test URL for an intent filter, add a <tools:validation> element alongside the corresponding <intent-filter> element.If any one of the test URLs does not pass the intent filter definition, a lint error appears. Such an error still allows you to build debug variants, but it will break your release builds.
  • Layout Editor:
  • The Layout Editor has been updated with a number of enhancements, including the following:
  • New toolbar layout and icons.
  • Updated layout in the component tree.
  • Improved drag-and-drop view insertions.
  • New error panel below the editor, showing all issues with suggestions to fix (if available).
  • Various UI enhancements for building with ConstraintLayout, including the following:
  • New support to create barriers.
  • New support to create groups: In the toolbar, select Guidelines > Add Group (requires ConstraintLayout 1.1.0 beta 2 or higher)
  • New UI to create chains: Select multiple views, and then right-click and select Chain.
  • Layout Inspector:
  • The Layout Inspector includes enhancements to make it easier to debug issues with your app layouts, including grouping properties into common categories and new search functionality in both the View Tree and the Properties panes.
  • APK Analyzer:
  • You can now use the APK Analyzer from the command line with the apkanalyzer tool.
  • The APK Analyzer has also been updated with the following improvements:
  • For APKs built with ProGuard, you can load ProGuard mapping files that add capabilities to the DEX viewer, including:
  • Bolded nodes to indicate that the nodes should not be removed when shrinking code.
  • A button to show nodes that were removed during the shrinking process.
  • A button that restores the original names of nodes in the tree view that were obfuscated by ProGuard.
  • The DEX Viewer now shows the estimated size impact of each package, class and method.
  • New filtering options at the top to show and hide fields and methods.
  • In the tree view, nodes that are references not defined in the DEX file appear in italics.
  • Preview for D8 DEX compiler:
  • Android Studio 3.0 includes an optional new DEX compiler called D8. It will eventually replace the DX compiler, but you can opt-in to use the new D8 compiler now.
  • DEX compilation directly impacts your app's build time, .dex file size, and runtime performance. And when comparing the new D8 compiler with the current DX compiler, D8 compiles faster and outputs smaller .dex files, while having the same or better app runtime performance.
  • To try it, set the following in your project's gradle.properties file:
  • android.enableD8=true
  • Google's Maven repository:
  • Android Studio now uses Google’s Maven Repository by default instead of depending on the Android SDK Manager to get updates for Android Support Library, Google Play Services, Firebase, and other dependencies. This makes it easier to keep your libraries up to date, especially when using a continuous integration (CI) system.
  • All new projects now include the Google Maven repository by default. To update your existing project, add google() in the repositories block of the top-level build.gradle file:
  • OTHER CHANGES:
  • Native debugging with Android Studio no longer supports 32-bit Windows. We've chosen to focus on other platforms because very few developers are using this platform. If you are using 32-bit Windows and you plan to debug native code, you should keep using Android Studio 2.3.
  • Upgraded the base IDE to IntelliJ 2017.1.2, which adds a number of new features from 2016.3 and 2017.1, such as Java 8 language refactoring, parameter hints, semantic highlighting, draggable breakpoints, instant results in search, and much more.
  • Added many new lint checks.
  • Also see the latest Android Emulator updates.

New in Android Studio 3.0 Build 171.4402976 RC 2 (Oct 20, 2017)

  • This update includes general bug fixes, including a fix to properly update from previously installed versions of the IDE on Linux and Windows.

New in Android Studio 3.0 Build 171.4392136 RC1 (Oct 14, 2017)

  • Android Studio 3.0 RC 1 is now available in the Canary, Dev and Beta channels.
  • This update includes fixes for the following public issues:
  • Issue #65519025: Missing classes in APK
  • Issue #65829618: Incremental builds fail when enabling resource shrinking
  • Issue #67172466: Android Studio hangs in some users
  • Issue #65500758: Adaptive icon preview does not refresh when changing shape
  • Issue #65684665: Android Studio creates invalid fontProviderQuery
  • Issue #65417958: Update Android Studio Templates to use VectorDrawable Foreground
  • Issue #65354278: Cleaning the project from the command line causes Robolectric to not find certain classes
  • Issue #63599784: Compile config deprecation warning doesn't respect Gradle's -q flag
  • Issue #65607225: Projects with single quote in title fail to install on emulators
  • Issue #64939383: Can't compile an app module's Android tests when a library module exposes android.support.v8.renderscript.RenderScript via API
  • Issue #65213467: Missing "Override" declarations when creating Fragment using Kotlin as source language

New in Android Studio 3.0 Build 171.4365657 Beta 7 (Oct 4, 2017)

  • This update includes fixes for the following issues:
  • Issue #65772685: Android Studio reports that Kotlin is not configured
  • Issue #65524516: Vanilla CMake error messages report full server interaction at console
  • Issue #65336086: Android plugin doesn't allow specifying CMAKE_TOOLCHAIN_FILE
  • Issue #65324685: “Failed to capture application” error when using profilers
  • Issue #65260658: Layoutlib doesn't show gradients embedded in a drawable
  • Issue #65041739: Download stops and hangs even after clicking “Cancel”
  • Issue #65032914: Refactoring name of declare-styleable fails
  • Issue #64804587: External kotlin module not included in some tests
  • Issue #37526099: Repeating “Socket Error: connection refused” when profilers are enabled
  • Issue #64212471: Profiler's 'close' button lack a tooltip
  • Issue #37137541: Asset in AAR file not found in design preview
  • Issue #37111548: Update "new layout resource" dialog to use ConstraintLayout by default.
  • Issue #65721163: IndexOutOfBoundsException during sync

New in Android Studio 3.0 Build 171.4333198 Beta 6 (Sep 16, 2017)

  • This update adds support for using CMake 3.7 or higher, and includes fixes for the following issues:
  • Issue #37137285: Some logs no longer appear in the console.
  • Issue #65050576: Issue resolving dependency on httpclient. Due to collisions with the internal version that the Android platform includes, you should exclude dependencies on httpclient from your build.gradle files.
  • Issue #65363025: Corrupt DEX files caused by performance optimizations.
  • Issue #65494776: Builds fail when using versions of CMake that are older than v3.6.4111459.

New in Android Studio 3.0 Build 171.4316950 Beta 5 (Sep 9, 2017)

  • This release has a number of general bug fixes as well as a collection focused on C++ development. If you experience any issues please open a new bug or file feedback as soon as possible .

New in Android Studio 3.0 Build 171.4304935 Beta 4 (Sep 2, 2017)

  • New Android plugin DSL for manipulating dependency matching strategy. You now provide fallbacks for missing build types and flavors using matchingFallbacks (which replaces buildTypeMatching and productFlavorMatching). You also provide the default selection and fallbacks for missing dimensions using missingDimensionStrategy (which replaces flavorSelection). To learn more, read Resolve build errors related to dependency matching.

New in Android Studio 3.0 Build 171.4294784 Beta 3 (Aug 25, 2017)

  • This release fixes the following bugs:
  • Composite build with aar library does not work with Android Studio
  • POST request failure with advanced profiling ON
  • Android Profile Error
  • INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2.

New in Android Studio 3.0 Build 171.4263559 Beta 2 (Aug 12, 2017)

  • Android Studio 3.0 Beta 2 is now available in the Canary and Dev channels.
  • This release fixes an issue which resulted in the compiler throwing a ClassNotFoundException when you enable Java 8 language features and specify minSdkVersion 19 or higher—this also caused some code analysis tools, such as ProGuard, to fail. For more information, see issue #64527520.
  • Known issue: If you have an existing Android Studio project that's using an alpha version of Android plugin 3.0.0 (such as 3.0.0-alpha9), you may get the following error when you migrate to Android plugin 3.0.0-beta1 (or higher) and sync your project: Gradle project refresh failed.
  • Resolve this issue selecting Build > Clean Project from the menu bar—you need to perform this action only once for each project. You can then sync your project files with Gradle by clicking Sync Project from the toolbar.

New in Android Studio 3.0 Build 171.4243858 Beta 1 (Aug 10, 2017)

  • Android Studio 3.0 Beta 1 is now available in the Canary and Dev Channels.
  • This release includes various bug fixes, including the following:
  • Fixed an issue where using the Kotlin plugin crashes with a classloading issue.
  • Fixed an issue where the menu bar no longer appears. (Issue #63743086)

New in Android Studio 3.0 Build 171.4182969 Canary 8 (Aug 1, 2017)

  • Issue #63586454: JavaUastLanguagePlugin may fail to translate a PsiMethod to a UMethod
  • Issue #63562276: Resizing widgets in LinearLayout has weird behavior
  • Issue #38236114: Edittext input type dialog does not fit screen
  • Issue #63295952: extractProguardFiles task is not incremental
  • Issue #37334887: Layout editor: some view properties have insufficient field height
  • Issue #63623801: ResourceNotFoundException thrown when deploying a Kotlin project to an AVD running API 16

New in Android Studio 3.0 Build 171.4141229 Canary 5 (Jul 3, 2017)

  • CHANGES:
  • The flavorSelection property has moved to the ProductFlavor class. This means that you can choose the default variant your app consumes from a producer at the flavor level. Add this property to android.defaultConfig to apply it to all flavors.
  • Android Gradle plugin is now based on Gradle 4.1 milestone 1. To update your project manually, add the following to your gradle-wrapper.properties file:distributionUrl=https://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip

New in Android Studio 2.3.3 Build 162.4069837 (Jun 9, 2017)

  • This is a minor update to add support for Android O (API level 26).

New in Android Studio 3.0.0.1 Build 171.4041253 Canary 2 (May 29, 2017)

  • This release includes fixes focused on:
  • Kotlin support
  • APK Analyzer
  • Android Profilers
  • Android Instant Apps
  • Android Gradle plugin
  • Native / C++ Issues
  • and general bug fixes

New in Android Studio 3.0 Build 171.4010489 Canary 1 (May 18, 2017)

  • This canary and dev channel release encapsulates our previous work in Android Studio 2.4, but mergers with our Gradle 2.5 plugin using Gradle 4.0 milestone 1. Given the magnitude of this update: new features, Kotlin language support, and breaking Gradle changes, we have decided to promote the version to Android Studio 3.0. The Android Gradle plugin 3.0.0-alpha1 aims to improve build performance for Android projects with a large number of modules. In order to bring about these gains, there are some breaking changes in the plugin behavior, DSL, and APIs. This impacts both build files and Gradle plugins. For instructions on how to migrate your own project to use this plugin, see Migrate to the 3.0 Plugin. Unfortunately we are not able to offer patches to Android Studio 3.0 from Android Studio 2.4 Preview 7 or any previous version. We will continue to offer patch upgrades as new canaries are released from Android Studio 3.0, but can not offer patches to this version. We will not update Android Studio 2.4 versions any further. For much more information, see the Android Studio 3.0 announcement.
  • Google's Maven repository for Android libraries:
  • The Android Support Library dependencies are now available from Google's Maven repository at maven.google.com—instead of downloading from the Android SDK Manager. This new distribution method simplifies Maven dependency management for those using continuous integration systems. Two new libraries available today are: Architecture Components Library, Android Instant App Library, and we have updated Support Library to 26.0.0-beta1*. In the future we plan to distribute all Android libraries only through maven.google.com. From now on, the latest versions of the following libraries are available only from Google's Maven repo (new versions are not available in the SDK Manager):
  • Android Support Library
  • Constraint Layout Library
  • Android Test Support Library
  • Databinding Library

New in Android Studio 2.3.2 Build 162.3934792 (May 12, 2017)

  • This is a minor update to Android Studio 2.3 for the following changes:
  • AVD Manager updates to support Google Play in system images.
  • Bug fixes for NDK builds when using R14+ of the NDK.
  • Also see corresponding updates for Android Emulator 26.0.3.

New in Android Studio 2.4.0.5 Build 171.3909050 Preview 6 (Apr 27, 2017)

  • Fixes:
  • Issue 335265: New Project Wizard: Create a new C++ project doesn't load in new window when cmake is not installed
  • We continue to take more fixes and will try to include IntelliJ 2017.1.1 as part of a future preview.

New in Android Studio 2.4 Build 171.3883974 Preview 5 (Apr 8, 2017)

  • Fixes:
  • Android Studio 2.4 Preview 5 includes updates from IntelliJ 2017.1. This is the latest stable release from JetBrains and will likely be the last major IntelliJ update in Android Studio 2.4.
  • We continue to close bugs as we work to a beta quality release.

New in Android Studio 2.3.1 Build 162.3871768 (Apr 5, 2017)

  • This is a minor update to Android Studio 2.3 that fixes an issue where some physical Android devices did not work properly with Instant Run (see Issue #235879).

New in Android Studio 2.4.0.0 Build 171.3829324 Preview 3 (Mar 22, 2017)

  • This update adds support for the Android O Developer Preview and includes various bug fixes.

New in Android Studio 2.4.0.0 Build 171.3804684 Preview 1 (Mar 15, 2017)

  • CODE:
  • In Android Studio 2.4 Preview 1 we upgraded the base IDE from IntelliJ 2016.2 to 2017.1 EAP, which adds a number of new features in 2016.3 and 2017.1 -- including parameter hints, semantic highlighting, instant results in search, and much more.
  • Many new lint checks
  • INSTANT RUN:
  • Instant Run Debug Issue 234401 should now be resolved. If a program is paused on breakpoint, app restarting is expected. But if the app is not paused on a breakpoint, it shouldn’t restart and hot swap should work when you only make a method implementation change.
  • BUILD:
  • Incremental dex’ing. Dex’ing is now done at a per class level. This allows for more incrementality and will result in faster incremental builds. You should also expect improved build speeds for applications using legacy multi-dex (minSdkVersion < 21).
  • Dependency resolution at execution time. In previous versions, dependency resolution occurs during Gradle configuration time. By moving dependency resolution to execution time, you should expect improved configuration times for large projects.
  • IDE:
  • Android Studio on the mac will now be called “Android Studio 2.4 Preview.app” to make it easier for you to run 2.3 stable with the new previews side by side.
  • Device File Explorer - Seamlessly view, modify and interact with device filesystems directly in Android Studio. This feature replaces device filesystem interactions previously accomplished through DDMS (Dalvik Debug Monitor Server)

New in Android Studio 2.3.0.8 Build 162.3764568 (Mar 3, 2017)

  • Primarily a bug fix and stability release, but it also includes a number of new features.
  • New:
  • Android Studio can now convert PNG, BMP, JPG, and static GIF files to WebP format. WebP is an image file format from Google that provides lossy compression (like JPEG) as well as transparency (like PNG) but can provide better compression than either JPEG or PNG. For more information, see Convert Images to WebP in Android Studio.
  • The new App Links Assistant simplifies the process of adding Android App Links to your app into a step-by-step wizard. Android App Links are HTTP URLs that bring users directly to specific content in your Android app.
  • The Layout Editor now includes support for two new ConstraintLayout features:
  • Define a view size based on an aspect ratio.
  • Create packed, spread, and weighted linear groups with constraint chains.
  • For more information, see Build a Responsive UI with ConstraintLayout.
  • The Layout Editor also now lets you create a list of favorite attributes so you don't have to click View all attributes to access the attributes you use most.
  • When adding a material icon using the Vector Import Dialog (File > New > Vector Asset), you can now filter the list of available icons by category or by icon name. For more information, see Adding a material icon.
  • New and updated annotations. The new @RestrictTo annotation for methods, classes, and packages lets you restrict an API. The updated @VisibleForTesting annotation now has an optional otherwise argument that lets you designate what the visibility of a method should be if not for the need to make it visible for testing. Lint uses the otherwise option to enforce the intended visibility of the method.
  • New lint baseline support allows you to use a snapshot of your project's current set of warnings as a baseline for future inspection runs so only new issues are reported. The baseline snapshot lets you start using lint to fail the build for new issues without having to go back and address all existing issues first.
  • New lint checks, including the following:
  • Obsolete SDK_INT Checks: Android Studio removes obsolete code that checks for SDK versions.
  • Object Animator Validation: Lint analyzes your code to make sure that your ObjectAnimator calls reference valid methods with the right signatures and checks that those methods are annotated with @Keep to prevent ProGuard from renaming or removing them during release builds.
  • Unnecessary Item Decorator Copy: Older versions of the RecyclerView library did not include a divider decorator class, but one was provided as a sample in the support demos. Recent versions of the library have a divider decorator class. Lint looks for the old sample and suggests replacing it with the new one.
  • WifiManager Leak: Prior to Android 7.0 (API level 24), initializing the WifiManager with Context.getSystemService() can cause a memory leak if the context is not the application context. Lint looks for these initializations, and if it cannot determine that the context is the application context, it suggests you use Context.getApplicationContext() to get the proper context for the initialization.
  • Improved Resource Prefix: The existing resourcePrefix lint check had many limitations. You can now configure your project with a prefix, such as android { resourcePrefix 'my_lib' }, and lint makes sure that all of your resources are using this prefix. You can use variations of the name for styles and themes. For example for the my_lib prefix, you can have themes named MyLibTheme, myLibAttr, my_lib_layout, and so on.
  • Switch to WebP: This check identifies images in your project that can be converted to WebP format based on your project’s minSdkVersion setting. An associated quickfix can automatically convert the images, or you can convert images to WebP manually.
  • Unsafe WebP: If your project already includes WebP images, this check analyzes your project to ensure that your minSdkVersion setting is high enough to support the included images. For more information about WebP support in Android and Android Studio, see Which browsers natively support WebP? and Create WebP Images Using Android Studio.
  • Changes:
  • A separate button to push changes with Instant Run: After deploying your app, you now click Apply Changes to quickly push incremental changes to your running app using Instant Run. The Run and Debug buttons are always available to you when you want to reliably push your changes and force an app restart.
  • Instant Run is supported only when deploying your app to a target device running Android 5.0 (API level 21) or higher.
  • Instant Run is no longer disabled for projects that link to external native projects using CMake or ndk-build. However, you can only use Instant Run to push incremental changes to your Java code, not your native code.
  • Cold swaps (which you can force for a running app by clicking Run ) are now more reliable. Forcing a cold swap also fixes the issue where changes to notification and widget UIs were not updated on the target device.
  • Includes optimizations that make app startup much faster. These optimizations may affect profiling, so you should temporarily disable Instant Run whenever profiling your app.
  • The AVD Manager and SDK Manager buttons are now included in the lean Navigation Bar as well as the full Toolbar. To use the lean Navigation Bar, click View to open the View menu, then ensure that Navigation Bar is selected and Toolbar is not selected.
  • The "Hybrid" debugger has been renamed to "Dual" debugger.
  • In the Run/Debug Configurations dialog, under Defaults in the left pane, the following run configuration names have changed with no behavior changes:
  • The JUnit name has changed to Android JUnit. If you have a project that uses JUnit run configurations, those configurations are transformed to Android JUnit run configurations the first time you open the project with Android Studio. A dialog appears to inform you of the name change.
  • The Android Tests name has changed to Android Instrumented Tests.
  • The GPU Debugger has been removed from Android Studio as of version 2.3. An open-source, standalone version of the tool will be made available soon on GitHub.
  • The Run/Debug option is no longer available when you right-click a *.gradle build script.
  • All templates now use ConstraintLayout as the default layout.
  • The Widgets palette in the Layout Editor has been redesigned.

New in Android Studio 2.3.0.7 Build 162.3742087 RC 1 (Feb 18, 2017)

  • We have just released Android Studio 2.3 RC 1 to the Canary channel. Assuming no surprises, we will promote this to the beta channel in the next few days. This build contains a small set of important bug fixes:
  • Gradle: https://code.google.com/p/android/issues/detail?id=233777
  • Layout editor: https://code.google.com/p/android/issues/detail?id=234221
  • Layout editor logging to help us track down https://code.google.com/p/android/issues/detail?id=230567

New in Android Studio 2.3.0.6 Build 162.3715353 Beta 4 (Feb 10, 2017)

  • Android Studio 2.3 Beta 4 has already completed the first level of testing and wanted to share the bits with as soon as possible. Once the build passes all testing we will release it to the Beta channel.
  • FIXED ISSUES:
  • Instant Run: 232931, 227610
  • Layout: 232499
  • Build Fixes: 233068, 233093,
  • General IDE fixes: 233016, 233038
  • And a few smaller updates.

New in Android Studio 2.3.0.5 Build 162.3671887 Beta 3 (Jan 26, 2017)

  • FIXED ISSUES:
  • Instant Run: We continue to get Instant run feedback and improve the service. Please continue sending us feedback. Many of these issues do not link back to public bugs in our tracker to ensure the feedback stays secure. Some of the fixes we can share are: 232439, 232529, 232060, 231842, 231658, 231563, 231563
  • Layout - Many fixes to constraint layout as well as general layout issues including: 232530, 232516, 232499, 232094, 231006, 231460, 231474, 230567, 230183, 231647
  • Build Fixes: 230471, 229171, 228047, 232043, 232803, 231501, 232043, 231557, 231559
  • Native C++: 232163
  • Lint: 231978, 232156, 232383, 232158,
  • Debugging: Issue 231497 - ANR and Instant Run: We are adding a workaround for it in beta 3 and will have a full solution in the next major update of Android Studio.
  • General IDE fixes: 231131

New in Android Studio 2.3.0.3 Build 162.3573574 Beta 1 (Dec 16, 2016)

  • Includes a several updates, bug fixes, and performance improvements.

New in Android Studio 2.2.3.0 Build 145.3537739 (Dec 7, 2016)

  • It includes a bug fixes focused around gradle, the core IDE, and lint.

New in Android Studio 2.2.2.0 Build 145.3360264 (Oct 20, 2016)

  • Includes bug fixes and performance improvements.
  • Fixed Issues;
  • Instant Run bug fixes
  • Gradle Plug-in Bug fixes
  • 32-bit JDK for use on 32-bit Windows
  • New Features:
  • Android API 25 Support - Basic support for API 25 inside Android Studio to support the Android 7.1 developer preview. We know there are still a few more updates inside Android Studio before we set API 25 as the default.
  • Expanded reporting when reporting Instant Run issues - When reporting an instant run issue we now collect

New in Android Studio 2.2.1.0 Build 145.3330264 (Oct 11, 2016)

  • Fixed Issues:
  • An Updated JDK to address multiple issues with MacOS Sierra
  • Improves the Native (C++) Development experience by resolving multiple critical bugs
  • Several Instant Run and Gradle Bug Fixes
  • Multiple issues in data binding
  • New Features:
  • Improved Reporting for Instant Run Issues: Some of you have been reporting issues with Instant Run, but it has been hard for us reproduce them. We have added extra logging to help us investigate Instant Run issues. This extra logging is OFF by default, and to enable it, go to Settings or Preferences, go to Build, Execution, Deployment > Instant Run, and check Log extra info is check. Next time you encounter an Instant Run issues, you can report it by clicking Help > Report Instant Run Issue...

New in Android Studio 2.2.0.12 Build 145.3276617 (Sep 20, 2016)

  • Includes a large number of bug fixes, performance improvements, and new features.
  • Design:
  • Layout Editor
  • Constraint Layout
  • Layout Inspector (Experimental)
  • PSD File Support in Vector Asset Studio
  • Develop:
  • Firebase Plugin
  • Updated Code Analysis & Lint checks
  • Enhanced accessibility support
  • Improved C++ Support Edit & Debugging
  • IntelliJ 2016.1.3 platform update
  • Samples Browser
  • Improved Font Rendering

New in Android Studio 2.2.0.11 Build 145.3253452 RC 2 (Sep 9, 2016)

  • This build contains a handful of bug fixes on top of RC 1. At this point we're very close to releasing 2.2 stable, so we'd really appreciate everyone taking this build for a spin and letting us know if anything major is broken.
  • FIXED ISSUES:
  • Layout Editor: There is a resolved bug in the layout editor's property sheet with editing style appearance properties (it will strip the @style prefix).
  • Patching: You should now be able to patch from Sable versions back to 2.0.
  • Many more fixes.

New in Android Studio 2.2.0.9 Build 145.3225885 Beta 3 (Aug 26, 2016)

  • This build contains a large number of bug fixes as we work to reach finish 2.2.
  • A fix to instant run instrumentation now requires the SDK platform corresponding to the device API level to be installed. For example, if you are running on a lollipop device, you must have the lollipop SDK installed as well.

New in Android Studio 2.2.0.8 Build 145.3200535 Beta 2 (Aug 18, 2016)

  • This build contains a large number of bug fixes as we work to reach Android Studio 2.2 RC:
  • Unit Test and Test Issues generally should now be working again
  • Gradle and Gradle Plugin Bug Fixes including around pro guard and native development
  • More bug fixes

New in Android Studio 2.1.3.0 Build 143.3101438 (Aug 16, 2016)

  • This update adds compatibility with Gradle 2.14.1, which includes performance improvements, new features, and an important security fix.

New in Android Studio 2.2.0.7 Build 145.3128856 Beta (Aug 10, 2016)

  • This build contains a large number of bug fixes as we work to reach Android Studio 2.2 RC.
  • Constraint Layout and New Layout Editor Bug fixes
  • Improvements to the interaction between Gradle 2.14.1 and Android Studio 2.2.
  • Instant Run and Build Bug Fixes
  • Memory performance improvements

New in Android Studio 2.2.0.6 Build 145.3111935 Preview 7 (Aug 2, 2016)

  • This build contains a large number of bug fixes:
  • Layout Editor improvements and bug fixes
  • Support for the latest version of Gradle (2.14.1) with Android Studio
  • Continued Instant Run bug fixes
  • Native / C++ improvements including: issue 21555: cannot resolve C/C++ symbols anymore which missed the Preview 6 release.

New in Android Studio 2.2.0.5 Build 145.3070098 Preview 6 (Jul 19, 2016)

  • Performance: We addressed a number of crashes that were introduced in Preview 5 and prior previews
  • Other: Several other fixes across the product - in instant run, deployment, lint, C++/CMake/NDK support, etc

New in Android Studio 2.2.0.4 Build 145.3040006 Preview 5 (Jul 8, 2016)

  • THIS BUILD CONTAINS A LARGE NUMBER OF BUG FIXES:
  • Performance: We fixed two big memory leaks -- one related to Gradle sync and the other related to layout rendering; both should help significantly with memory usage. We also improved the locking behavior of layout XML preview so it shouldn't cause the editor to lag when typing during background layout preview rendering
  • Instant Run: A number of important bug fixes which should help with performance and correctness
  • Fixed a bug where assets were not properly packaged
  • Disable the small optimization where edits in the main app module skip certain tasks: this was not safe and could lead to some edits missing when running the app
  • Fix a bug which meant assets would not be incrementally packaged in alpha4
  • No longer crunch PNGs in library dependencies
  • Fix bug where updating launcher icons would not trigger an app reinstall
  • Layout Editor:
  • Auto connect mode is now off by default.
  • New constraint layout library version alpha4.
  • There's a lint warning (and quickfix to update) if you're using alpha3 or older.
  • The focus of the update is on layout performance.
  • There's also documentation on the various attributes, and code completion should work better with this version in the IDE
  • Note: There is an incompatible change in the Guideline class and attributes: layout_constraintGuide_begin, layout_constraintGuide_end and layout_constraintGuide_Percent
  • The resize screen feature has been tweaked visually and should be much faster.
  • The screenshot action has been added back to the Context menu, and there is a preference panel in options where you can set the "prefer XML editor for layout files" option as in previous releases.
  • Lint icons no longer show up on the design surface by default, but you can turn them back on via options (including from the lint notifications panel.)
  • PhotoShop file support: Layers in 16 bit and 32 bit images are now decoded
  • Fixed many bugs, including the bug starred by a bunch of users where on Windows, include tags would stop working
  • Other: A lot of fixes across the product - in deployment, editor, data binding, C++/CMake/NDK support, lint, Espresso test runner, Firebase, etc.
  • Updated platform metadata for Android Nougat (e.g. code completion for context.getSystemService() should return all the valid constants as of N, etc.)
  • Fixes for the most common exceptions reported via the crash reporter

New in Android Studio 2.2.0.3 Build 145.3001415 Preview 4 (Jun 25, 2016)

  • Instant Run:
  • Many bug fixes, we are working hard to address all reproducible issues. Please continue to file them.
  • Lint:
  • Bug Fixes for 209384, 213630, 212479
  • ConstraintLayout Editor:
  • Various bug fixes
  • Pan & zoom panel is now a floating window accessible from the toolbar
  • Importing VectorDrawable from Photoshop files:
  • Strokes are now supported
  • Clipping masks are now supported
  • Shape operations are now supported (merge, subtract, intersect and exclude overlapping)
  • Fill opacity is now supported
  • XML output optimized for size
  • Photoshop files support:
  • Improved support for CMYK and Lab images
  • Firebase Plugin:
  • Bug Fixes
  • Improved Directions

New in Android Studio 2.2.0.2 Build 145.2949926 Preview 3 (Jun 9, 2016)

  • With Android Studio 2.2, you may have noticed the larger download sizes than previous versions of Android Studio; this is because we now bundle a build of OpenJDK with the IDE to address various font rendering and stability issues.

New in Android Studio 2.1.2.0 Build 143.2915827 (Jun 6, 2016)

  • Android Studio 2.1.2 includes a number of small changes and bug fixes
  • Instant Run updates and bug fixes
  • Improved performance in LLDB and a notification in studio when there are LLDB crashes
  • Git rebase command now works with Android Studio’s latest security update
  • And a few additional general fixes

New in Android Studio 2.2.0.1 Build 145.2915834 Preview 2 (May 27, 2016)

  • This build contains a number of fixes for various critical bugs found in preview 1:
  • ConstraintLayout: version 1.0.0-alpha2
  • Fixed guidelines crash on device
  • Fixed typo in attribute name (leftToLeft)
  • Changed orientation attribute namespace from app to android to fix a conflict with GridLayout
  • ConstraintLayout now works properly inside ScrollView
  • ConstraintLayout now works properly inside RecyclerView
  • Percentage positioning of guidelines is now parsed as an integer instead of a dimension
  • Better behavior for match_parent on the device. The behavior is now the same as 0dp (the widget stretches according to its constraints)
  • Layout Editor
  • Fixed bug which sometimes turned fonts blue in other editors (.xml, .java)
  • Fewer generated XML attributes
  • Better behavior for match_parent in the editor
  • Fixed widgets resizing during drag
  • Improved guidelines representation in the editor
  • Improved auto conversion to ConstraintLayout
  • Improved edition of nested layouts
  • Various bug fixes and improvements in the editor
  • Fixed bug preventing the IDE from starting on some Linux distributions (in particular where /bin/sh is not bash)
  • Export Signed APK wizard was exporting to the wrong folder (issue 210520)
  • Fixed bug in welcome screen which meant some users couldn't create new projects
  • Fixed embedded JDK handling
  • Fixed a bug bugs in the native/hybrid debugger
  • Disabled a couple of Groovy inspections that reported incorrect errors in build.gradle files
  • Fixed an instant run bug which for some users resulted in every run turning into a full build
  • Fixed a couple of crashes in lint (in the new Gradle plugin, 2.2 alpha 2)
  • A bunch of improvements to the accessibility support
  • Unfortunately the Espresso Test Recorder is still not in this build; we're addressing a few more issues and then hope to have it ready in the next build!
  • Also, due to a bug, we're not able to offer patches from Preview 1 to Preview 2, so you'll need to download a complete install (and the complete install is a bit bigger in 2.2 than in the past since we now bundle a copy of OpenJDK to address a number of font rendering and other stability issues). However, the bug should be fixed in this build such that patching from Preview 2 to the next build will work.

New in Android Studio 2.2.0.0 Build 145.2878421 Preview 1 (May 19, 2016)

  • A new layout designer and constraints layout:
  • Now, you use the layout window like a sheet of paper where you position widgets, and we automatically add all the constraints so that your UIs resize automatically on any Android screen.
  • Firebase Plugin:
  • Explore and integrate the suite of services offered by Firebase inside of Android Studio. Adding services like Analytics, Authentication, Notifications, and AdMob are just a few clicks away.
  • IntelliJ & CLion 2016.1:
  • Android Studio 2.2 includes all the latest updates from the underlying JetBrains product platforms IntelliJ and CLion.
  • And more:
  • We also expanded support for N’s new Jack compiler which brings you Java8 language features like lambdas and default methods.

New in Android Studio 2.1.1.0 Build 143.2821654 (May 17, 2016)

  • Contains a critical security fix. We highly recommend you update to this version for the fix.

New in Android Studio 2.1.0.9 Build 143.2790544 (Apr 26, 2016)

  • The primary changes in this update provide support for development with the Android N Preview
  • The Android N platform adds support for Java 8 language features, which require a new experimental compiler called Jack. The latest version of Jack is currently supported only in Android Studio 2.1. So if you want to use Java 8 language features, you need to use Android Studio 2.1 to build your app
  • Although Android Studio 2.1 is now stable, the Jack compiler is still experimental and you must enable it with the jackOptions property in your build.gradle file.
  • Other than the changes to support the N Preview, Android Studio 2.1 includes minor bug fixes and the following enhancements:
  • The Java-aware C++ debugger is now enabled by default when you're using an N device or emulator and select Native debugger mode (in the Debugger tab for your run/debug configuration).

New in Android Studio 2.1.0.8 Build 143.2783836 RC (Apr 23, 2016)

  • This build fixes a couple of important bugs reported in beta 3.
  • The main feature in 2.1 is support for Android N preview; other than that, the release is nearly identical to the 2.0 stable release from a couple of weeks ago, but with a few extra bug fixes and

New in Android Studio 2.1.0.6 Build 143.2765781 Beta 2 (Apr 15, 2016)

  • This update fixes a critical bug in the git support in Beta 1

New in Android Studio 2.1.0.5 Build 143.2759333 Beta (Apr 13, 2016)

  • The main feature in 2.1 is support for Android N preview

New in Android Studio 2.0.0.20 Build 143.2739321 (Apr 8, 2016)

  • Android Studio 2.0 is the fastest way to build high quality, performant apps for the Android platform, including phones and tablets, Android Auto, Android Wear, and Android TV. As the official IDE from Google, Android Studio includes everything you need to build an app, including a code editor, code analysis tools, emulators and more. This new and stable version of Android Studio has fast build speeds and a fast emulator with support for the latest Android version and Google Play Services.
  • Android Studio is built in coordination with the Android platform and supports all of the latest and greatest APIs. If you are developing for Android, you should be using Android Studio 2.0. It is available today as a easy download or update on the stable release channel.
  • Android Studio 2.0 includes the following new features that Android developer can use in their workflow :
  • Instant Run - For every developer who loves faster build speeds. Make changes and see them appear live in your running app. With many build/run accelerations ranging from VM hot swapping to warm swapping app resources, Instant Run will save you time every day.
  • Android Emulator - The new emulator runs ~3x faster than Android’s previous emulator, and with ADB enhancements you can now push apps and data 10x faster to the emulator than to a physical device. Like a physical device, the official Android emulator also includes Google Play Services built-in, so you can test out more API functionality. Finally, the new emulator has rich new features to manage calls, battery, network, GPS, and more.
  • Cloud Test Lab Integration - Write once, run anywhere. Improve the quality of your apps by quickly and easily testing on a wide range of physical Android devices in the Cloud Test Lab right from within Android Studio.
  • App Indexing Code Generation & Test - Help promote the visibility your app in Google Search for your users by adding auto-generated URLS with the App Indexing feature in Android Studio. With a few click you can add indexable URL links that you can test all within the IDE.
  • GPU Debugger Preview - For those of you developing OpenGL ES based games or apps, you can now see each frame and the GL state with the new GPU debugger. Uncover and diagnosis GL rendering issues by capturing and analyzing the GPU stream from your Android device.
  • IntelliJ 15 Update - Android Studio is built on the world class Intellij coding platform. Check out the latest Intellij features here.
  • Deeper Dive into the New Features:
  • Instant Run:
  • Today, mobile platforms are centered around speed and agility. And yet, building for mobile can sometimes feel clunky and slow. Instant Run in Android Studio is our solution to keep you in a fast and fluid development flow. The feature increases your developer productivity by accelerating your edit, build, run cycles. When you click on the Instant Run button (), Instant Run will analyze the changes you have made and determine how it can deploy your new code in the fastest way.

New in Android Studio 2.0.0.17 Build 143.2720475 RC 1 (Mar 30, 2016)

  • This build incorporates several more fixes for Instant Run, which is working at parity with 1.5.1. With Instant Run enabled (on by default), the first full build will be slightly slower than 1.5.1 as we create multiple dex files. Subsequent incremental builds will be much faster than 1.5.1. Full and incremental builds will be slightly faster than 1.5.1 even if you disable Instant Run due to optimizations we’ve made -- but enable Instant Run for max performance. If you want more information on Instant Run, be sure to check out the updated Instant Run documentation.

New in Android Studio 2.1.0.2 Build 143.2712822 Preview 4 (Mar 25, 2016)

  • This build incorporates more bug fixes for Instant Run. There are a couple of small UI changes: there is a "Rerun" action in the toolbar next to run, which lets you build and restart the process with one click (or keyboard shortcut). And in the Build menu there is a "Clean Rerun" action which performs a full clean, build, install and run.

New in Android Studio 2.0.0.15 Build 143.2637817 Beta 6 (Feb 26, 2016)

  • This build fixes a couple of important bugs related to instant run:
  • Apps that were using multiple processes (via android:process in the manifest) were not being updated properly with Instant Run. For the time being, we have turned off Instant Run in such a scenario.
  • Certain devices that have an incorrect version of the “run-as” command behaved incorrectly with instant run. This would manifest as instant run being unable to upload a new version when the application wasn’t running. We now properly handle this scenario and gracefully degrade to doing a full apk installation.
  • Instant Run was not working properly if the application was in the background. We now do the correct updates in such a scenario - the application will be terminated and restarted.
  • We automatically turn off Proguard or Jacocco when used with Instant Run.
  • Handling of native libraries :
  • changing source code of a native library should trigger a coldswap.
  • hotswap can lead to UnsatisfedLink exceptions
  • Applications using android-annotations are now compatible with InstantRun.
  • During hot swaps, initial code and incremental updates are no longer loaded from a different class loader

New in Android Studio 2.0.0.14 Build 143.2609919 Preview Beta 5 (Feb 17, 2016)

  • This build fixes a couple of important bugs related to instant run:
  • Turn off Gradle's javac incremental compilation in all scenarios. In previous builds we had turned it off when using annotation processors, but it turns out there are still some bugs where resource constant field changes are not propagated correctly, which led to runtime crashes after restarting the app. This may sound like a big performance sacrifice, but it's not: the javac stage is typically a small part of the build (which is dominated by dex and adb push and install) -- and note version 1.5.x of the Gradle plugin wasn't using incremental javac compilation at all.
  • Change the way the app is restarted after making an incompatible change (a "coldswap"). The technique we were using resulted in some state being persisted across app runs, which could lead to crashes or unexpected intent data.

New in Android Studio 2.0.0.13 Build 143.2602393 Beta 4 (Feb 17, 2016)

  • Bug fixes included:
  • A bug related to cold swap which meant that in many cases after restarting the app, it might be executing stale code, not the latest changes
  • A bug related to updating resources, where sometimes drawable changes (bitmaps and vectors) would not correctly show
  • A bug fix for users of Retrolambda Gradle plugin (disable Gradle javac incremental compilation)
  • A bug where switching between variants would sometimes confuse Instant Run
  • More gracefully handle a scenario where pushing files to the device via adb fails on some devices
  • Additional fixes to speed up Gradle full builds when projects have a large number of dependencies
  • Fix for a Dalvik verifier error when calling super methods with short or byte types

New in Android Studio 2.0.0.11 Build 143.2586769 Beta 2 (Feb 5, 2016)

  • Performance regression: Many users reported that the initial build in 2.0 was much slower than in 1.5. Turns out this was related to the way we packaged all dependencies into a single dex file (since those are unlikely to change for Instant Run purposes). However, this actually made dex much slower in some scenarios due to the way dex merging works internally
  • Dagger2 and other annotation-processor based libraries and plugins: In 2.x we've been using the new "incremental Java compilation" feature in Gradle, but this feature does not work well with annotation processor. In beta2, we automatically turn off incremental compilation if a project appears to be using annotation processors through the "android-apt" plugin. Manually wired processors will still fail
  • We also fixed a couple of other Instant Run bugs; see in particular the below notice about uninstalling your app once
  • Finally, there were a couple of bugs in the SDK manager which prevented the IDE from starting if you had add-ons installed with multiple system images

New in Android Studio 2.0.0.9 Build 143.2571730 Preview (Jan 30, 2016)

  • In this release, we've completely turned off in-memory dexing by default. We've spent the last couple of previews trying to fine-tune it, but there are lingering issues which continues to affect users. This should hopefully make the builds work a lot better for many of you. (If things were already working well, you can continue with in-memory dexing by turning it on with android.dexOptions.dexInProcess=true.)
  • We've also continued to fix various Instant Run scenarios; in particular, using APK splits on API 23 seems to trigger some platform bugs, so for now we've switched over to using multidex for coldswap for both Lollipop and Marshmallow.

New in Android Studio 2.0.0.8 Build 143.2563049 Preview (Jan 28, 2016)

  • We've just pushed Android Studio 2.0 Preview 8 to the canary channel, as well as a new version of the Gradle plugin: 2.0.0-alpha8. You'll want to update both; instant run in particular is only enabled when using the latest versions of both:
  • This preview contains a number of important fixes relative to preview 7. In particular, a number of users have reported either really slow build times or failed builds using version 2.x of the Gradle plugin. The likely culprit for this is that in 2.x we've switched to perform dexing inside the build process, instead of running dex in an external process (because this not only makes incremental builds much faster, but also significantly speeds up full builds). However, the dex process had a larger default heap size than the Gradle daemon, which means that unless you've configured Gradle to run with more memory, the builds can be much more memory constrained which can severely slow down builds (or even make them fail running out of memory).
  • In 2.0.0-alpha8 we've added some automatic diagnostics for this: if the build process is too small, we switch back to out-of-memory dexing and emit a build warning explaining how to bump up the Gradle daemon size. (We're also working on some additional related improvements for the next build after alpha8.)
  • Preview 8 also continues to fix user reported bugs for Instant Run. Among a number of stability fixes, we've also turned off "cold swap" when running on a pre-Lollipop device; incompatible changes will trigger a normal/full build. "Hot swap" still works on all API levels >= 15.

New in Android Studio 2.0.0.7 Build 143.2554821 Preview (Jan 23, 2016)

  • This contains a number of bug fixes on top of preview 6, particularly in the Instant Run area (there is also a 2.0.0-alpha7 version of the Gradle plugin). This build also incorporates IntelliJ IDEA 15.0.3, which brings a number of critical IDE fixes from JetBrains.

New in Android Studio 2.0.0.4 Build 143.2489090 Preview (Dec 18, 2015)

  • There are also some changes to support the next emulator preview build.

New in Android Studio 2.0.0.3 Build 143.2479369 Preview (Dec 10, 2015)

  • This build contains a large number of bug fixes, along with the following notable changes
  • A new lint check which looks at switch statements used in concert with @IntDef integers, and makes sure that all constants from the @IntDef are handled. Note that there is a quickfix for adding the missing statements as well, so after adding an empty switch statement this is a quick way to populate the initial set of case statements.
  • A new lint check which flags incorrect attempts to insert version numbers in Gradle file using String interpolation. This will automatically flag this "gotcha".
  • Lint now flags anonymous classes that extend Fragment
  • Two new security lint checks contributed by Michael Peck: One which looks for native code in unsafe locations (such as asset folders), and another which flags Runtime.load() and System.load() calls.
  • The translation editor now supports speed search (and F2 to enter cell editing).
  • We've also tweaked the Instant Run facility such that when changes can't be hotswapped, there's a confirmation dialog before restarting the app. We'll be tweaking this in the next preview build.
  • Various improvements to the AVD Manager to support the new emulator

New in Android Studio 1.4.1 Build 141.2343393 (Dec 4, 2015)

  • Fixed Gradle model caching bug (led to excessive Gradle syncing when the IDE was restarted)
  • Fix code completion performance issue when using libraries with private resources
  • Fix deadlock when using native debugging
  • Fix subversion 1.9 version validation
  • 189658: Do not attempt to validate if device chooser is not enabled
  • 188577: Fix missing translation detection for region overrides
  • 188070: Fix deadlock in the theme editor
  • 187726: Fix theme editor reload/edit conflict
  • 188055: Theme editor performance fix
  • 187665: launch compatibility: when looking at uses-feature, the "required" attribute is not taken into account

New in Android Studio 1.5.1 Build 141.2456560 Beta (Dec 3, 2015)

  • The following bugs are fixed in 1.5.1:
  • 194705: Fix incorrect lint warning about localized permission descriptions referenced by the manifest
  • 194612: Layout editor rendering failure: "The following classes could not be found: android.support.v7.internal.app.WindowDecorActionBar"
  • 194045: Fixed data-binding parsing of the percent operator
  • 191819: Fixed the contract in the vector asset studio icon preview window (and added Help topic)
  • 195167: Fix app launching bug where the debugger launched to the wrong device, as well as a null pointer exception in some scenarios

New in Android Studio 1.5 Build 141.2343905 Preview 2 (Oct 22, 2015)

  • In 1.5 we've reworked the build+deploy flow such that instead of first building with Gradle and then popping up the "choose a device" dialog, we now immediately ask for a device to push the APK to. Some users were using Run + Cancel to build an APK; we now added a separate "Build APK" action to the Build menu for that purpose.
  • There are several new lint checks and a bunch of bug fixes as well.

New in Android Studio 1.4 Build 141.2272828 RC 2 (Sep 24, 2015)

  • RC 2 contains bug fixes in a number areas -- the theme editor, the vector asset wizard, it fixes blurry icons in hi-dpi mode with fractional scaling, and it fixes miscellaneous exceptions reported via the crash reporter

New in Android Studio 1.4 Build 141.2262011 RC 1 (Sep 23, 2015)

  • Bug fixes in a number of areas:
  • Fixes for high-density displays on Linux (and in general, we have more information on how to configure high density displays for Windows and Linux in this document)
  • Many more fixes to the templates (activities, etc), visual refresh, and removed misc warnings
  • Vector icons displayed properly in the editor margin
  • Layout editor bug with duplicate id's in RelativeLayouts
  • Auto completion of upper-cased permission names in manifest files
  • Inferring nullity in multi-module project
  • Lint warns about missing platform-tools 23.0.1 (prevents properly API checking Android M calls) or using buildTools pre-23.0.1 (to prevent crashes on some devices for RTL attributes)
  • Fix build errors with vector image generation on OSX when using Java 6 to run the IDE and Java 7 to run the IDE ("Could not find class: apple.awt.CGraphicsEnvironment")
  • Fix git module configuration bug
  • Misc theme editor bugs
  • Misc crash reporter bugs

New in Android Studio 1.4 Build 141.2248056 Beta 4 (Sep 15, 2015)

  • Fix icon-size scaling when using high-density displays
  • Relax the "spaces in path" error validation to be limited to NDK projects (where the command line tools still have some problems with spaces)
  • A few tweaks to the templates, including a fix to allow creating a new project without activities

New in Android Studio 1.4 Build 141.2240497 Beta 3 (Sep 10, 2015)

  • HiDPI/Retina display improvements for Windows and Linux
  • Logcat view mostly rewritten to address a number of stability and usability bugs
  • Bugs around XML validation and code completion inside custom views, as well as fixing a few bugs around source code formatting and the rename module refactoring
  • A lot of tweaks to the builtin templates, fixing compilation problems and removing deprecated APIs, as well as incorporating the design library
  • Workarounds for broken JDK installations, incompatible plugins, failed patch update loops, etc
  • Automatic attachment of sources for gradle dependencies
  • Over a hundred other bug fixes

New in Android Studio 1.3.2 Build 141.2178183 Beta (Aug 21, 2015)

  • This build fixes a handful of bugs relative to 1.3.1 (183068, 178690, 182433, 183120), and updates the IDE with information about Android M.

New in Android Studio 1.4 Build 141.2168647 Preview 2 (Aug 14, 2015)

  • This build fixes a critical bug in the source editor which broke input method editing. There are fixes for a handful other problems discovered from user submitted crashes as well.

New in Android Studio 1.4 Build 141.2161099 Preview (Aug 14, 2015)

  • A new theme editor, which helps you view, explore and edit your themes. (In this first version, only color and color state-lists are included.) You can access the theme editor from your styles.xml file.
  • Two new performance monitors, available from the Android Monitor tab: A GPU profiler, which graphs the GPU usage for the connected process, and a network profiler, which graphs the network usage for the connected process
  • A new "Vector Asset" wizard which lets you create Android XML vector drawables from SVG files as well as import vector icons from the Material Design vector icon library. (There is also support on the way for generating PNG images from vector icons at build time; that's part of the Android Gradle plugin 1.4 which should be available in preview form soon.)
  • There are many new lint improvements: a new lint check which makes sure that the constants specified in @IntDef are unique, a new lint check which flags suspicious flag initialization syntax, a new lint check which flags suspicious combinations of XML prefixes and namespaces, a quickfix for API check warnings to surround the target method call with a version, the lint missing permission check now also looks for permissions required by Intent actions and ContentResolvers, and custom lint rules are now checked and displayed within Android Studio.
  • IDE quickfixes for configuring the project, which we disabled a while back since they did not properly update the Gradle build files, are now back and fully functional. And in the C++ editor, there is basic support for Doxygen comments in code completion on APIs.

New in Android Studio 1.3.1 Build 141.2117773 Beta (Aug 8, 2015)

  • This is just a minor bug fix update addressing the following issues found in 1.3.0:
  • Creating Android Wear AVDs broken on Windows (b/22834707)
  • New Project Wizard ignores package name edits (181740)
  • "The SDK path is not writable": Allow the SDK directory to be read-only (181679)
  • Switch default Gradle plugin version for newly created projects from 1.2.2 to 1.3.0
  • Several fixes for LLDB debugging (details in 180819)
  • Fix Java package renaming to not involve OCHandler (180437)

New in Android Studio 1.3 Build 141.2112779 RC 4 (Jul 25, 2015)

  • This build fixes the following issues:
  • The LogCat window no longer switches to a different process when the current process dies
  • Prevent "StartupAbortedException" for the IDE when there are foreign/conflicting .jar files in the JDK extensions directory
  • Fix incorrect nullness information for Android SDK methods (requires File > Invalidate Caches)
  • Include Andoid Gradle 1.3.0 in the offline Gradle plugin repository
  • Fix a handful of crashes reported by the crash reporter (in the setup wizard, AVD manager, and the memory profiler)

New in Android Studio 1.3 Build 141.2095413 RC 3 (Jul 18, 2015)

  • Tweak the default IDE heap size to be a bit larger
  • Turn off EAP mode (reduces internal validation checks etc)
  • Fix top crashes from the crash reporter:
  • AssertionError in AppResourceRepository
  • Fixing NPE in OCStringLiteralCopyPasteProcessor
  • java.lang.Throwable in com.intellij.openapi.diagnostic.Logger
  • Fix false positive inspection for app indexing

New in Android Studio 1.2.2 Build 141.1980579 Beta (Jun 10, 2015)

  • This is a small bug fix release which fixes a couple of critical issues:
  • Debugger fails at "Collecting data" and then hangs on "Waiting until last debugger command completes", especially when viewing the contents of a collection in the Variables pane
  • Update setup wizard such that it only installs the current stable release of the SDK tools, not the most recently available preview tools
  • Update the layout preview tools such that it only uses preview versions of layoutlib if your project is being compiled with a preview SDK

New in Android Studio 1.3 Build 141.1989493 Preview 3 (Jun 10, 2015)

  • This is just a small bug fix update relative to 1.3 Preview 2 which fixes a few critical issues:
  • Debugger fails at "Collecting data" and then hangs on "Waiting until last debugger command completes", especially when viewing the contents of a collection in the Variables pane
  • Update setup wizard such that it only installs the current stable release of the SDK tools, not the most recently available preview tools
  • Update the layout preview tools such that it only uses preview versions of layoutlib if your project is being compiled with a preview SDK
  • Incorrect inspection for array size
  • Reduce flickering in the new SDK manager
  • Fix debugger resolution of resource integers for project-local resources
  • Prompt to update from build tools 23 rc1 to rc2

New in Android Studio 1.3 Build 141.1972460 Preview 2 (Jun 2, 2015)

  • The lint check which incorrectly flagged missing "missing super method call" errors has been fixed.
  • The Setup Wizard now longer installs the Android M preview by default; it installs the most recent stable version (currently API 22). You should only install and use the Android M preview (and buildtools 23-rc) if you are also going to use version 1.3.0-beta1 of the Android Gradle plugin.
  • The layout editor and layout preview windows only use the Android M preview layout library if the project is compiled with the M preview library.
  • Choosing the Design library from the Project Structure Dialog's Add Dependency feature now correctly adds 22:2 instead of 0:0 as the version.

New in Android Studio 1.3 Build 141.1962279 Preview 1 (Jun 1, 2015)

  • The new version contains many new features:
  • New Allocation Tracker
  • New Heap dump Viewer
  • Many new code inspections to enforce framework and support library threading annotations, range annotations, call super, check result, etc.
  • Missing permission checks and unhandled revocable permission checks
  • Android M preview data binding Support
  • Support for adding Google Services to the project in the project structure dialog (especially for Analytics)
  • SDK update notifications, and brand new integrated SDK manager UI
  • New quickfixes, such as automatic generation of a Parcelable implementation
  • Many built-in live code templates
  • Many other smaller features and bug fixes

New in Android Studio 1.2.1.1 Build 141.1903250 (May 13, 2015)

  • Updated the base IDE platform from IntelliJ 14.1 to 14.1.2.
  • Fixed a few critical bugs around Gradle sync, layout rendering and the first setup wizard

New in Android Studio 1.2 Build 141.1863883 RC 3 (Apr 29, 2015)

  • This build incorporates the final release of version 1.2 of the Android Gradle plugin.

New in Android Studio 1.2 Build 141.1845774 Beta 3 (Apr 11, 2015)

  • A single bug fix:
  • inter-module dependencies are not configured correctly

New in Android Studio 1.2 Build 141.1838417 Beta 2 (Apr 10, 2015)

  • Fixed bug which caused Gradle sync to not run until manually invoked at least once. This resulted in lots of unresolved/red symbols in the editor.
  • Fixed "Import Settings" bug which prevented settings from 1.0/1.1 to be imported into 1.2 on Windows and Linux
  • Detect when the ibus-daemon is used on Linux and point to page with information for working around keyboard related issues
  • Fixed import from Eclipse project to move resource files from source folders into src/main/resources such that they are packaged correctly for runtime
  • Fixed symbol resolution for libraries that bundle artifacts, and correctly set dependencies on AARs exposed as artifacts
  • Fixed bug where creating a new project had no visible feedback for 5-10 seconds
  • Fixed bug where the IDE would hang if the Messages window had errors
  • Fixed incorrect window parenting in the AVD manager
  • Fixed a couple of bugs in the Android Wear templates (hardcoded package name, and incorrect wear module dependency)
  • Fixed vmoptions parsing order on Linux

New in Android Studio 1.2 Build 141.1825374 Beta (Apr 3, 2015)

  • Version 1.2 updates Android Studio to be based on IntelliJ 14.1.1, released earlier this week. Relative to Android Studio 1.1, this means the IDE picks up all the new features from IntelliJ 14 and 14.1, such as:
  • a new debugger which shows variable values inline in the editor, can decompile libraries you don't have source code for, and can generate a list of objects referring to a selected object
  • distraction free mode
  • simultaneous tag editing (where you can edit open and closing tags simultaneously)
  • editor enhancements like multiple selections, smart backspace indent, and automatic indentation detection for the current file
  • new and improved refactoring operations
  • annotation inference, scratch files, improved Gradle support, improved diff view, high-density monitor support, and many more features
  • There are some Android-specific enhancements as well:
  • Support for version 1.2-beta of the Gradle plugin
  • CPU monitor and performance collection capture view
  • Improved BCP 47 support
  • Many bug fixes and a couple of additional lint checks

New in Android Studio 1.2 Build 140.1793788 Preview 3 (Mar 20, 2015)

  • This fixes several bugs in Android Studio, and also updates the underlying IntelliJ 14.1 platform to pick up all the features and fixes from two EAP builds

New in Android Studio 1.2 Build 140.1782451 Preview 2 (Mar 14, 2015)

  • Performance tools: The memory usage window is now included as a tab in the Android runtime window, and there is now a tab for graphing CPU usage as well. You can drag these tabs to stack them vertically if you want to view both at the same time.
  • There's also a new "Captures" view which shows the various performance data files you've collected. From there you can open corresponding viewers, or in the case of .hprof files right click to convert it to a standard .hprof file format.
  • BCP 47 support. As of Lollipop, Android supports 3 letter language codes (as well as 3 letter region codes, additional script types etc using a resource folder format based on BCP 47). Android Studio 1.1 included some preliminary support for this, but it is more fully supported in Android Studio 1.2. (Note that you must use version 1.1 of the Gradle plugin or later as well.) The resource chooser dialog now combines the language and region qualifiers into a single selection, you can choose any of the 3 letter languages (such as Klingon!) from the list, and we also show related regions when we have that information.

New in Android Studio 1.2 Build 140.1773923 Preview 1 (Mar 10, 2015)

  • This is the first release based on IntelliJ 14, which means it picks up over a year's worth of improvements to IntelliJ, such as a new debugger which automatically shows variable values in place in the editor! In the following screenshot, the green text is not actually part of the source code, it's the debugger showing the current values of the variables. You can also hover over operators to have the expression evaluated

New in Android Studio 1.1.0 Build 135.1740770 (Feb 20, 2015)

  • New features:
  • Improved unit testing support! Note that this requires the new version of the Android Gradle plugin 1.1, also available (and bundled with the IDE for offline usage). Note also that while the new Gradle plugin is included and supported, version 1.0 continues to be supported as well, so you can update to the new version of the IDE without affecting your project files and builds.
  • Many new lint checks - run Analyze > Inspect Code to see if version 1.1 uncovers new issues in your projects
  • Templates for creating analog and digital Android Wear watch faces
  • Updated launcher icons, now packaged as mipmap resources
  • Support for BCP 47 language tags (e.g. additional 3-letter language codes when using Android 5.0); as with the improved unit testing support this requires version 1.1 of the Gradle plugin.

New in Android Studio 1.1 Build 135.1731439 RC 1 (Feb 12, 2015)

  • This release contains only a small set of bug fixes on top of the beta 4 release.

New in Android Studio 1.1 Build 135.1719989 Beta 4 (Feb 6, 2015)

  • Support for version 1.1 of the Android Gradle plugin (now available as a release candidate)

New in Android Studio 1.1 Build 135.1690626 Preview 2 (Jan 23, 2015)

  • In this build, there are several new lint checks:
  • Check for suspicious language/region combinations (where you are defining a translation for a language and specific locale, where the combination of language and region is unusual and it's possible that you've used the wrong code.)
  • Checks that the tag passed to a Log.severity(tag, ...) call and its surrounding Log.isLoggable(tag) calls refer to the same tag. Similarly, it also checks that the logging level passed in to isLoggable matches the type of logging call, e.g. if if you check isLoggable(..., Log.DEBUG) you should log with Log.d, not Log.v or Log.i.
  • Checks that the tag passed to the logging calls, if its value can be resolved, is at most 23 characters long (as required by the Logging API.)
  • Checks that calls to info, verbose and debug logging calls are surrounded by a conditional (e.g. isLoggable or BuildInfo.DEBUG) but only if that logging call "performs work" (e.g. concatenates non constant strings or performs methods calls etc). This check is off by default.
  • Check for using drawables instead of mipmaps for the launcher icon, where the application is also filtering the set of densities packaged into the APK. There is also a quickfix in the IDE for migrating an icon from a @drawable to a @mipmap.
  • In addition, the default launcher icons have been updated to a Material Design look, and it now also includes an xxxhdpi density icon.
  • Bug fixes:
  • Incorrect flag for Portuguese
  • strings.xml reformated every time I create new Activity
  • Sync removes modules that do not have a Gradle counterpart.
  • Fixes low resolution icon in Linux.
  • Add intention to correct XML namespace for support lib
  • Making AVD Manager separate (non-modal) window.
  • Allow cancelling task that retrieves device screenshots
  • Including comments when merging xml
  • Fixing the device preview in the search and create cases
  • Gradle lint does not recognize Context.getDrawable() as API 21+
  • Fix run dialog modality to allow avd manager interaction
  • Fixing resource merge to work within new project wizard
  • Pick test runner from Gradle while creating test configuration
  • Fix id reference check to properly handle undefined id's
  • Append .exe extension on Windows (mksdcard)
  • Welcome Wizard, on Windows, shows "Tools directory not found" error incorrectly
  • Bug fixes not tagged with a bug number in the commit message.

New in Android Studio 1.1 Build 135.1681273 Preview 1 Canary (Jan 16, 2015)

  • In addition to the bug fixes there are some notable improvements:
  • New projects now create launcher icons as @mipmap resources instead of @drawable
  • The various "cleanup" detectors for lint (e.g. checking that FragmentTransactions are committed, and that TypedArrays are recycled, and so on), now run incrementally within the IDE. They've also been extended to search for additional problems, such as missing close calls on database cursors, or missing release calls on SurfaceTextures
  • There are a couple of new lint checks
  • A lint check which tries to identify string resources that should probably be using plurals instead
  • A lint check which warns you that @android:string/yes returns OK, not Yes
  • Several other lint checks that were bytecode based and only ran from Gradle (not lint in the IDE) have been ported to run incrementally in the IDE: Uses of SimpleDateFormat which should probably use getDateInstance instead, checks that addJavaScriptInterface points to a class annotated with @JavaScriptInterface, and a check looking for leaked Handler objects.
  • There is a new template for creating watch faces for Android Wear
  • The following bugs in the issue tracker were fixed:
  • Android Studio doesn't start, unable to find valid JVM
  • Restrict IconDensities check with splits density data
  • Incorrect inspection about Android problem for non-Android project
  • Lint report doesn't explain how to suppress warnings from Gradle.
  • tools:background should not trigger an overdraw warning
  • False positive in lint PropertyEscape
  • Lint: Make TypographyQuotes work with plurals
  • Library project is created with launcher icon resources
  • The xxhdpi launcher icon differs from other densities
  • src, layout folders are empty while creating new project
  • AVD Default orientation
  • Update lint to ECJ 4.4, ASM 5.0.3: NullPointerException by running lint
  • Don't match resource names for format-parameter only strings
  • "Palette" show twice in View > Tools Window
  • Fixing the device preview in the search and create cases
  • Making AVD Manager separate (non-modal) window.
  • Allow settings.gradle to include projects dynamically
  • can't create outgoing link from widgets that are in included layouts
  • Check if mksdcard can be executed
  • Update wizards to use new headers
  • AVD Manager: SD Card Radio Button Selection
  • AVD Manager: Fix Key lines of the Verify Configuration Screen
  • install, bad link to linux KVM
  • save screenshot: respect device art masks
  • Added "Download JDK 7" quick-fix.
  • uncommitted fragment transactions not highlighted by lint
  • @DrawableRes doesn't match R.mipmap drawables
  • Translations Editor does not show newly added locale
  • Making the AVD ID field look non-editable
  • Properly handle parent class lookup in the API check for this-expressions
  • Lint uses incorrect API level while analyzing Java Library modules
  • FlagManager asserts on region code es-419
  • ADV Manager has start button but no stop button!
  • Move Clear All and Scroll to End actions
  • Installer now waits for uninstaller
  • studio.exe can again run on Win64
  • NPE when missing dependency during import
  • Updating api distributions and distribution dialog text
  • Updating title of AVD Manager window
  • Adding hardware buttons for nexus one and nexus s
  • file paths (in local.properties) are no longer treated as relative if they belong to a different platform.
  • Use black icons only
  • device chooser: Prefer to use a device rather than the emulator
  • After switching device types, the system image list broke
  • Use $ as separator inner classes in fragment names
  • Fix scaling of device diagram.
  • Adding defaults for new avd creation wizard
  • Fixing avd duplication
  • Fixing button styles in avd manager
  • Compute default parameter values quickly
  • Fixing skin chooser on windows
  • Do not require approval of all licenses
  • Improve JDK detection algorithm
  • NPE on configuring library documentation
  • Closing exported device files.
  • Try to detect jdk location automatically on entering the step
  • Visual feedback for 'Detect JDK' button processing
  • Do not download samples
  • apk installation: do not throw error for unexpected dumpsys output
  • device chooser: special case Google APIs target
  • Misc other fixes for crashes reported via the crash reporter
  • Bug fixes not tagged with a bug number in the commit message.
  • This does not include the work and fixes to the build system for Gradle plugin 1.1, still in progress. Note that Android Studio 1.1 works fine with version 1.0 of the Android Gradle plugin.

New in Android Studio 1.0.2 Build 135.1653844 Canary (Dec 19, 2014)

  • This is just a bug fix release which the following fixes:
  • SDK Manager on Windows fails to install tools
  • Update recommended SDK Tools version in Android Studio from 24.0.1
  • Package manager exception when using custom signing
  • NPE in com.intellij.ide.navigationToolbar.NavBarPanel
  • Objectify filter added to web.xml when generating endpoints from class, even when the class is not an objectify entity

New in Android Studio 1.0.1 Build 135.1641136 Canary (Dec 13, 2014)

  • A bug fix release which the following fixes:
  • 82159: AVD Manager locks exported device.xml file
  • 81779: emulator log on Studio doesn't work on Windows
  • 81023: Creating virtual device from Android Studio installed on C drive with Android SDK on D drive fails
  • 82404: Update the recommended SDK tools version to 24.0.1.
  • 82405: Make the default Update channel in the 1.0.x releases "Stable" rather than "Beta"
  • 82071: "How do I create a custom hardware skin?" doesn't point to anything

New in Android Studio 1.0 Build 135.1626825 RC 4 (Dec 5, 2014)

  • It bundles Android Gradle plugin 1.0.0-rc4 instead of rc3, which fixes a couple of important Gradle plugin issues
  • It includes the Import Sample wizard which was accidentally left out in earlier RCs
  • It updates the project structure dialog to use the new property names of a few recently renamed Gradle DSL methods
  • Launching an emulator from the AVD window now closes the AVD list window in order to immediately show emulator output

New in Android Studio 1.0 Build 135.1598475 RC 1 (Nov 21, 2014)

  • We've also updated the splash screen and branding graphics to include our new logo, and the settings directories for the IDE have been updated from AndroidStudioBeta to just AndroidStudio. When you run this version for the first time, it should offer to import your settings from the beta settings directory.
  • Finally, we are now bundling a local Maven repository containing the Android Gradle plugin and all its dependencies, which should allow you to create new projects without a network connection. (This is also why this patch is fairly large).

New in Android Studio 0.9.0 Build 135.1561280 Canary (Nov 4, 2014)

  • This is just a bug fix release which fixes a couple of critical bugs discovered in version 0.9.0.

New in Android Studio 0.9.0 Build 135.1551333 Canary (Nov 1, 2014)

  • Adds support for the new version of the Android Gradle plugin, 0.14.0, also released today. In addition, there are a number of bug fixes, particularly in the AVD manager (which now also provides built-in emulator skins for the Nexus devices.)
  • Please note that the new version of the IDE requires the new version of the Gradle plugin, and vice versa, so when you update your projects will fail to sync with this error message:
  • For most users, simply clicking on the Fix hyperlink will be enough; this will update your build files to reference the new 0.14.0 Gradle plugin version instead, which will then be downloaded and installed. However, there have been some changes to the plugin APIs, so you may need to tweak your build files (and if you are using third-party Gradle plugins, they may need to be updated).

New in Android Studio 0.8.14 Build 135.1538390 Canary (Oct 24, 2014)

  • Improvements to the AVD manager: more feedback when creating and starting AVDs; better default RAM device defaults, better system API sorting, tweak emulator launch parameters, and the emulator output is now displayed in an output tab (which is important when the emulator runs into fatal problems, such as the device description requiring more RAM than available on the system)
  • Updated editor support for Android Lollipop: API metadata now includes Lollipop APIs, and the new XML drawable tags and attributes are such as are supported in editor XML validation and code completion

New in Android Studio 0.8.13 Build 135.1525417 Canary (Oct 18, 2014)

  • This is primarily a bug fix release relative to 0.8.12 from last week.
  • However, it does include some support for Android Lollipop and device information and art for the new Nexus devices. For example, you can create AVDs for Nexus 6 and Nexus 9, as well as Android 5.0 Lollipop system images.
  • The frame-screenshot-pulled-from-device feature, and the layout editor and XML rendering preview, now also support Nexus 6 and Nexus 9 artwork.
  • And finally, various editing features have also been updated to be Lollipop aware (e.g. the targetSdkVersion lint check suggests using 21, the Build.VERSION_CODES codename for Lollipop is now recognized, and so on.)

New in Android Studio 0.8.12 Build 135.1503853 Canary (Oct 10, 2014)

  • A brand new AVD Manager (AVDs are virtual devices for the emulator). The new AVD Manager is more tightly integrated with the IDE. For example, when attempting to run your app, you can quickly create a Nexus 5 or Nexus 7 AVD directly from the Run dialog. Here's the new AVD list, where you can view and edit AVDs (and you can see how much disk space each AVD is using), you can start AVDs, etc.
  • When creating new projects, we now default to using HTTPS instead of HTTP for the Gradle wrapper. We've also added a lint (and a quickfix) to warn about existing projects using HTTP.
  • If you prefer to edit layout XML files manually (using the XML editor rather than the graphical layout editor), you can now click on the Options icon in the toolbar above the layout editor or the layout preview window, and choose to "Prefer XML editor".
  • The translation editor is now available from string editors.
  • The Android Project view is now chosen by default. You can switch back to the plain Project View by right clicking on the dropdown above the project view.
  • You can now import the tools namespace in XML with a quickfix: just write the tools: prefix and then the IDE will offer to insert the corresponding namespace declaration.
  • A lot of bug fixes, among them a file descriptor leak which led to machine problems after repeated APK deploy operations, and several significant patch update mechanism bugs, described in detail below. And many others.
  • No Patches:
  • We've found and fixed several significant bugs in the patching mechanism. One of these bugs meant that upgrading to a new version, while resulting in a functionally identical installation, would also result in slightly different binary contents (for example, some timestamps inside .jar files would differ). This meant that the actual binary signatures would not match, which broke for example the application signature checks.
  • We have now found and fixed that bug, but because there are many different binary variations of a given previous version, we cannot create a single patch to update to the new version. Therefore, for this version we will require a full download of the IDE. From this version forward we should be able to accurately install updates while preserving the application signatures.
  • Another common problem many users encountered on Windows was that the patch would refuse to install because files to be updated were still in use, typically by the Gradle daemon. We've now improved the patch dialog such that it finds and identifies the processes locking the files, and offering to kill them directly.
  • Since we are not releasing patches for this version, this improvement won't be apparent until our future patch updates, but this has been a frequently reported issue so we are happy to have finally resolved it -- and we are also working to make sure the Gradle daemon does not lock these files in the first place.

New in Android Studio 0.8.11 Build 135.1446794 Canary (Sep 19, 2014)

  • Support for the new version of the Android Gradle plugin (0.13), which was also released today (more info). Note however that the IDE continues to work with version 0.12 of the plugin! The new plugin supports (and requires) Gradle 2.1, so if you try to update a project with a Gradle wrapper which points to an unsupported version, the IDE detects this and offers to fix it. Similarly, if you try to import a Gradle project which does not contain a gradle wrapper, it will offer to let you insert one.
  • Lint errors can now display the full issue explanation text in-place in the editor. This is helpful when the short single-line error message does not fully explain what the problem is. There is a hyperlink at the end of the single line message, and a keyboard shortcut listed next to it; clicking the link or pressing the keybinding will replace the tooltip with the full explanation text.
  • The layout editor now checks to make sure that you have the latest available versions of "layoutlib". This is useful because the rendering library is actually shipped with the SDK rather than with Android Studio, so even if you are staying up to date with Android Studio canary builds, you can easily use obsolete versions of the layout library. The Android L preview rendering library in particular was recently updated, so if you do not have the latest version the IDE will check and let you know.
  • We've merged in the latest changes from IntelliJ 13.1.5 RC. One of these fixes changes the directory layout in the Android Studio.app bundle
  • A lot of bug fixes!

New in Android Studio 0.8.10 Build 135.1428667 Canary (Sep 12, 2014)

  • New memory monitor. Open it via Tools > Android > Memory Monitor. This view lets you connect to a running app on a device and monitor its memory use over time.
  • Analyze > Inspect Code should be a lot more accurate now (as well as faster). In older builds, you could end up with hundreds of irrelevant warnings for things like empty XML tags in third party libraries like appcompat, or gradle script keywords flagged as spelling mistakes, or unused properties in local.properties, and even downright wrong suggestions, like suggesting you make a public Android activity package protected instead.
  • Lint: There are a few new lint checks. First, there is a lint check which looks for potential widget overlaps in RelativeLayouts. Second, the plurals detector has been updated with ICU 53 data, and it will now include specific examples of implied quantities, which helps explain for example why the quantity "one" should be including the actual number in the given language.
  • The Android window no longer shows a modal progress bar while adb starts up
  • Attempting to edit files outside the project (which used to be marked as read-only) now shows a dialog instead where you can deliberately unlock the files
  • Additional build failure scenarios (such as low memory conditions for the Gradle daemon, or socket permissions) are recognized along with hyperlink actions to resolve the problems
  • A lot of bug fixes!

New in Android Studio 0.8.8 Build 135.1391024 Canary (Sep 1, 2014)

  • Fixes to the font rendering in the translation editor introduced in 0.8.7 where on Windows and Linux many translations would just show up as empty rectangles like □□□□.
  • New error handling for a gradle cache bug which has affected a lot of users. The symptom is that syncing the project fails with a strange class loading error. We now recognize this scenario and offer a quickfix to work around it (which basically means discarding the Gradle cache and downloading the Gradle dependencies over again)

New in Android Studio 0.8.6 Build 135.1339820 Canary (Aug 9, 2014)

  • Version 0.8.6 contains only a couple of bug fixes relative to 0.8.5.

New in Android Studio 0.8.5 Build 135.1331330 Canary (Aug 7, 2014)

  • Version 0.8.5 contains only bug fixes relative to 0.8.4, primarily in the new Android project view introduced in 0.8.4.

New in Android Studio 0.8.4 Build 135.1295215 Canary (Jul 25, 2014)

  • In addition to a number of bug fixes, this version contains the new Android project view which offers a flattened and reorganized view of the Gradle project structure. It is not yet the default view, so to enable it, right click on the Project and choose "Android" from the list of views.
  • You'll now see a project where all the build files are in one place, for each module the code is at the top, manifest files are grouped together, etc.
  • The biggest change is for hierarchy of resource files. First, they're all combined across Gradle source sets. Second, resources across all qualifiers (locales, orientations, screen sizes and densities etc) get combined into a single folder per resource folder type.

New in Android Studio 0.8.3 Build 135.1281642 Beta (Jul 22, 2014)

  • Improvements:
  • Bug fixes (0.8.2 contained only critical fixes; this release contains a larger set of fixes)
  • Integrated recent IntelliJ 13.1 EAP builds. These are basically bug fix builds.
  • Inspect theme attributes for quick documentation. If you invoke View > Quick Documentation (usually bound to F1) on for example ?android:textAppearanceLarge you will see the theme inheritance hierarchy and resolved values for the various attributes that are pulled in.
  • Quickfixes for around 30 lint issues
  • New Allocation Tracker integrated in the Android/DDMS window
  • Output window message filtering

New in Android Studio 0.8.2 Build 135.1267975 Beta (Jul 14, 2014)

  • Contains bugfixes reported in beta builds 0.8.0 and 0.8.1.

New in Android Studio 0.8.1 Build 135.1248636 Beta (Jun 28, 2014)

  • Support for the Android L preview SDK:
  • Layout rendering: Support for the new L theme, widgets, and graphics support (such as shadow layers)
  • API version rendering (showing the layout across different UI versions)
  • Editor support for L APIs (such as the new Drawable XML tags and attributes, e.g. , , etc)
  • Support for Wear and TV:
  • New templates for Android Wear and for Android TV, along with Gradle build support
  • Layout Rendering
  • New intention action to override resources
  • Automatic platform component downloading during Gradle sync when a required platform is missing. For example, if your build.gradle file requires API 19, but your SDK install does not have Android 4.4 installed, you will get a fix link in the Gradle Sync window which offers to install it. This is not specific to missing Android SDK versions; it will also install missing build tools versions, or missing Android or Google Maven repositories.
  • Gradle Sync Caching. We now cache the synced Gradle model across IDE invocations, so if you exit the IDE and restart, the IDE should be ready to use much more quickly.

New in Android Studio 0.6.1 Build 135.1224218 Dev (Jun 13, 2014)

  • Improvements:
  • A number of important bug fixes, particularly around the Gradle support
  • A revamped New Project Wizard. This work is still in progress, but should already be fully functional
  • Several new lint checks:
  • A security check ensuring that Cipher.getInstance() is used with safe values
  • A security check which looks for fragment injection
  • A gradle build script check which looks for cases where using property assignment no longer works as expected
  • Another gradle build script which ensures that the gradle plugin version is compatible with the SDK
  • Bug fixes:
  • The bug where you ask the Update check to limit itself to one channel (for example dev), and it would continue to offer Canary updates, has been fixed

New in Android Studio 0.6.0 Build 135.1212210 Dev (Jun 7, 2014)

  • Most of the changes in this build are "under the hood" changes to support version 0.11 of the Android Gradle plugin, as well as bug fixes and integrating the latest IntelliJ 13.x fixes.
  • One of the user visible changes in 0.11 is that we've deprecated the packageName and packageNameSuffix settings, and have renamed them to applicationId and applicationIdSuffix. The purpose of this is to make it clear that this application id is decoupled from package declarations in your manifest, and in particular, the R class and the BuildConfig class, and all the implementation classes inside your app, can be renamed and refactored freely; you just need to keep applicationId the same. If you open your build.gradle file, lint is highlighting these deprecated calls and offering quickfixes to update them

New in Android Studio 0.5.9 Build 135.1195882 Dev (May 30, 2014)

  • Updated to IntelliJ 13.1.3 RC, picking up the following builds: 135.815, 135.863, and 135.908.
  • Many bug fixes.
  • GRADLE:
  • Support for the new 0.10.4 plugin, also released today. Studio 0.5.9 continues to work with 0.9.+, but if you are using it with 0.10.+, make sure you use at least 0.10.4.
  • Improved message console during builds:
  • The most important change is that it now includes all output from Gradle, since prior to this, it could show an error message like "Execution failed for :app:proguardRelease: Please correct the above errors first", without actually showing the output from the proguard task.
  • Various tweaks such as making the window searchable, sorting lines in output order rather than by severity category (though it will auto-jump to the first error), hiding the Info icon and "Information:" prefix for normal output lines, showing Gradle's deprecated and incubating feature output as warnings, etc.
  • Improved project structure editor:
  • Master/Detail view: In the Project Structure dialog, instead of showing items in a giant 2-dimensional table, show a master/details view where there is a list of items on the left-hand side with + and - buttons to add and remove items; clicking on an item in the list shows details in a 2-column table on the right-hand side.
  • The Project Structure editors now includes information not just from the Gradle file being edited but the computed Gradle model as well, which lets it for example show default values, such as the greyed out (true) and (false) values shown in the screenshot above.
  • There's a new panel for editing project-global properties, such as the plugin version and repository for all modules. It also lets you edit the Gradle wrapper version being used (which edits gradle-wrapper.properties rather than the top level build.gradle file.)
  • EDITING:
  • ProGuard editor support: syntax highlighting, code completion for ProGuard flags, toggle comment action.
  • Go to declaration for a resource now sorts the results based on the parent folder qualifiers, which makes navigation to strings in apps with many translations much more predictable.
  • Many editor refactoring fixes. Renaming a styleable will now update all styleable+attr field references too (and find usages will include these). Similarly renaming a custom view will now update all the R field references.
  • Layout editor id property renaming. You can now view and edit the id property without the @+id/ prefix, and more importantly changing the id will now either just change the id of this component without updating any references, or perform a full id refactoring. (Prior to this, changing the id would change layout references in the layout, but not in the Activity class, breaking the app.) When you change an id, and there are references to this id, the layout editor will ask you whether you also want to update usages.
  • LINT:
  • New Gradle lint check which warns about octal literals. Some users have tried to specify a version code like "031252", but Groovy will use the leading 0 to interpret this as an octal number which is probably not at all what was intended.
  • New Gradle lint check (off by default) which checks all the dependencies in your Gradle files and searches MavenCentral to see if there are any more recent versions available.

New in Android Studio 0.5.8 Build 135.1155795 Dev (May 9, 2014)

  • Fixed a number of crash reports from recent canary builds
  • Integrated two more IntelliJ EAP builds: 135.760 (release notes) and the earlier 135.689
  • Gradle:
  • Support for Gradle 1.12, and the new Android Gradle plugin 0.10.
  • If you configure a "resource prefix" for your Android library (see the build system docs), in order to avoid accidental name clashes, Studio will flag all resources that do not conform to the given prefix, and it will also default newly suggested identifiers in the layout editor, create resource dialogs etc to identifiers which begin with the prefix.
  • Layout Editor:
  • Support for "show in included", which lets you view and edit layouts that are included in other layouts "in context".
  • The layout editor and XML layout preview rendering now supports "hover": as you move your mouse around, the view under the mouse is highlighted slightly and shown with a faint dashed border. This makes it easier to understand the structure of your layout without having to click to select each view.
  • The frequently reported bug where using cut, copy and paste shortcut keys in the property sheet would operate on the whole widgets rather than the property sheet text has been fixed.
  • Lint: Several new checks:
  • A layout include tag check which ensures that if you specify layout parameters on an include tag you also specify layout_width and layout_height, since otherwise the other layout parameters will be ignored
  • A couple of app compat library checks
  • Ensures that when using the appcompat library, you call the right methods - e.g. getSupportActionBar() instead of getActionBar(). NOTE: This lint check may incorrectly report issues in projects which are not using AppCompat at all. This bug has been fixed and will appear in 0.5.9.
  • Ensures that your menu resource files are using the correct form of showAsAction. A frequent problem for developers manually adding or removing app compat dependencies was forgetting to change between android:showAsAction and app:showAsAction. Worse yet, using the app: namespace one without appcompat could result in an aapt crash. Lint now validates these files.
  • A locale folder check which ensures that you are using the correct ISO code for a couple of locales where there is a more modern ISO code but where the code is not yet the right one to use
  • A check to ensure that you are not calling WebView#addJavascriptInterface on platforms lower than API 17
  • A check which discourages use of signatureOrSystem level permissions
  • Several checks that have only been available from the lint command line (because they rely on analyzing bytecode, which is not available inside Studio where there is no compile-on-save) have been ported to run incrementally in the editor in Studio. This includes the Parcel creator check, the view constructor check, the wrong draw/layout call check, and the valid fragment check.
  • Import: When editing build.gradle files under the project root which have not been imported into the project, there is an editor banner warning you that it's missing and offering to import it
  • Run Configurations: Improved "reuse this device" handling: Show device chooser again if the set of available devices has changed
  • Many, many bug fixes!

New in Android Studio 0.5.7 Build 135.1138084 Dev (Apr 26, 2014)

  • A single bug fix a crash in the project structure dialog.

New in Android Studio 0.5.6 Build 135.1134860 Dev (Apr 25, 2014)

  • Bug fixes for several critical bugs reported in 0.5.5.
  • Improvements to the build.gradle file editor support. Code completion, show documentation and go to declaration is now smarter (though it is still slow, so wait a second or two for results, and it still includes some "noise" in the form of base Groovy methods). Properties now show up (but for documentation, look up the corresponding getter for now.)
  • New templates: A Google Play Services template, new templates for creating folders for various types of sources (such as .java files, JNI, XML resources, etc), and the BlankActivity wizard was split into separate activities - a blank activity, a blank fragment activity, a tabbed activity, and a navigation drawer activity
  • Gradle sync errors are now displayed in the Message window rather than in transient popup balloons, and the message window can contain hyperlinks with quickfixes to resolve problems

New in Android Studio 0.5.5 Build 135.1122749 Dev (Apr 17, 2014)

  • Update to a new IntelliJ 13.x EAP build: 135.667.
  • Editing:
  • New resource type inspection. This finds errors where you are passing the wrong type of resource to a method which accepts a resource id
  • The resource type metadata is also used to drive code completion
  • Support for the new annotations which shipped with the most recent version of the support library, such as @NonNull and @Nullable, as well as annotations to declare resource types and valid constants. Add a dependency on com.android.support:support-annotations:+ to use these in your projects. In the upcoming 0.10.x version of the Android Gradle plugin, the plugin will extract these annotations into your libraries' AAR files such that clients of your library can get the same resource type checks as is shown above for the SDK APIs.
  • Removed many incorrect @Nullable annotations from the SDK builtin annotation database, so there should be fewer incorrect null warnings in your code.
  • The Gradle build file editor is now smarter about the Android Gradle plugin's DSL. It should no longer create incorrect errors and warnings, and go to declaration should be able to jump to the right methods. (This work is ongoing and in upcoming releases code completion and documentation will be improved.)
  • Layout Rendering:
  • The layout configuration menus now show you whether picking a specific device will result in jumping to a different layout. For example, if you are looking at a layout with a phone, and there is an xlarge version of the same layout, then switching to a Nexus 10 will force the editor to switch to the xlarge version of the layout. We now display this information in the menu such that you can instantly see when this happens, to help make it clear when a layout is not a match
  • Smarter device selection. Rather than always remembering the most recently used device per layout, and always defaulting to Nexus 4, it now keeps a list of the most recently chosen devices, and always switches to the first matching device among the most recently chosen devices. This means that if you for example switch to a 7" tablet layout, it will show all subsequent layouts you open with the same device, except when that device is not a match for the layout -- for example if you open an xlarge layout, in which case it will open the most recently chosen compatible device, such as a 10" tablet layout.
  • The property sheet custom editor for colors now includes support for the ARGB format
  • Project:
  • Importing modules should now work properly. You can import existing Eclipse ADT projects as well as Gradle modules into an existing Gradle project; it will copy in the sources as is done for full project import, as well as handle dependencies transitively. Import modules either from the project structure dialog or the File | Import Module action.
  • New project structure dialog implementation: Should be faster, includes Gradle sync notification, should only perform a Gradle sync at the end when necessary, and won't list invalid IntelliJ module warnings as before. This is actively being worked on and the individual editors (for flavors, build types, signing configurations etc) will be improved in upcoming builds.
  • Templates:
  • New templates to create manifest, AIDL, resource XML files etc in specific source sets.
  • Attach to Process:
  • The process chooser, shown when attaching to a running process, now includes device names and is "speed search" enabled (which is true for most views in IntelliJ such as the project view, where you can start typing and the list is automatically filtered)
  • Many bug fixes

New in Android Studio 0.5.4 Build 135.1101912 Dev (Apr 4, 2014)

  • Many bug fixes!!
  • A new Lint API check, which flags usages of attributes that are not available on all versions supported with minSdkVersion. This is just a warning rather than an error, since unlike unavailable method calls, this will not cause a crash. In some cases, such as in the following screenshot, the fact that the attribute is not used in some of the older versions is not a problem: the LinearLayout will simply not show dividers, which in this case is not a big visual problem. However, in other cases the unused attribute may be vital to the operation or look of an application, so it's important to be aware that the attribute is only functional on some of the supported versions. As always, you can suppress warnings you've manually confirmed are fine
  • There is a new template for creating a Google Maps Activity (invoke via New > Google > Google Maps Activity)

New in Android Studio 0.5.3 Build 135.1092050 Dev (Mar 28, 2014)

  • Updated the bundled IntelliJ IDE to 13.1.1, picking up the following bugs since our last build: 13.1.1
  • Gradle Support:
  • You can now import modules into existing projects. (Module deletion is coming soon.)
  • When there are errors during sync/import, these are no longer only displayed in a transient popup balloon; they are written to the Messages window.
  • The build variants window now shows conflicting variants.
  • Templates:
  • When creating new activities you can choose which source set to write the activity into
  • Rather than a single catch-all "Android Component" template dialog, the available templates are now offered as a nested set of menus such that you can quickly pick templates by category
  • Many bug fixes

New in Android Studio 0.5.2 Build 135.1078000 Dev (Mar 21, 2014)

  • Bug fixes:
  • Updated base IDE to IntelliJ 13.1 RC2.
  • New lint checks:
  • Ensures that AdapterView implementations use the View Holder pattern (to make scrolling smoother)
  • Ensures that when inflating layouts, you always pass a parent context (since otherwise layout parameters on the root layout will be ignored)
  • Ensures that directory paths in property files (such as local.properties) are escaped properly. Backslashes and colons in these files must be escaped, so if you simply paste in a Windows path like C:\My\Sdk, that value will not be read by the IDE and by Gradle as the path you intended.
  • Ensures that resource aliases point to resources of the same type as the alias

New in Android Studio 0.5.1 Build 134.1061098 Dev (Mar 8, 2014)

  • It addresses the following bugs:
  • "Unable to load class 'org.gradle.api.artifacts.result.ResolvedComponentResult'" error when loading project: Issue 65155.
  • Android Studio 0.5.0 does not work with a custom project structure (such as the one exported from Eclipse): issue 66758.
  • Occasional NullPointerException on startup: issue 66822.

New in Android Studio 0.5.0 Build 134.1058404 (Mar 7, 2014)

  • Support for the Android Gradle plugin 0.9. (Note that it also requires 0.9 or higher, and there are a couple of incompatible changes: See this page for how to update your project if you are affected: tools.android.com/tech-docs/new-build-system/migrating_to_09)
  • New bundled version of IntelliJ 13.1 EAP build:
  • This means we're switching from the stable 13.0.x releases to 13.1 to pick up some platform support we need, but we also pick up some great new features:
  • Postfix code completion
  • Code templates in code completion, and block reformatting
  • Full release notes for the two new 13.1 EAP builds we're picking up: 134.1160 and 134.1342.
  • Gradle Support:
  • Offline mode for sync and build
  • Support for source folders outside the module content root
  • Support for build variants in library projects
  • Lint:
  • Architectural improvements allow many cross-file checks to be run incrementally in the IDE such that they show up in the editor while editing, rather than requiring a full Analysis run to be performed. For example, while you are editing an Activity class, it will incrementally ensure that your findViewById calls perform a valid cast based on how those id's are used in the layout resource files.
  • Similarly, it will check your String.format calls to ensure that the types of the parameters match the formatting conversion specifiers found in the value resource files. Other newly incremental checks include the array size check, the unknown id check, the missing orientation check, the locale check and the text field input type check.
  • The lint.xml configuration file can now filter out errors in files not just by exact relative paths but also by regular expressions such as
  • and by glob expressions:
  • flag Gradle packageSuffix usage where the suffix does not start with a dot
  • Editor support for Android transition resource files: validation, code completion, documentation

New in Android Studio 0.4.6 Build 133.1028713 (Feb 20, 2014)

  • Bug fixes. This is primarily a bug fix release from Android Studio 0.4.5 released five days ago. In particular, the Gradle sync editor notifications should be fixed now, as well as issues around switching language levels.
  • Source and documentation attachments. If you have plain Java library dependencies (for example on Guava or Joda-time), the Gradle sync will now automatically discover the associated source code and use those for the libraries, which makes javadoc popups work in code completion, which makes parameter documentation and suggested parameter names better, and so on. (Source attachments for AAR libraries is not yet working.)
  • Improvements to the project, activity and fragment templates:
  • The Blank Activity template no longer includes a fragment by default
  • There is a new option to add Google+ login to the Login Activity template (New > Activity)
  • Some additional clipart is included in the Asset Studio wizard

New in Android Studio 0.4.5 Build 133.1021040 (Feb 15, 2014)

  • Many bug fixes for issues reported in 0.4.4 and earlier releases
  • Merged to the latest IntelliJ 13 EAP build 133.818
  • When you edit your build.gradle files by hand, and the IDE's model is out of date, we now show an editor notification along with a link to immediately sync.
  • Support for custom manifest file locations
  • Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
  • Editor inline resource folding for quantity strings (plurals)
  • Some new lint checks, and in particular one which flags uses of the assertion keyword. This does not work reliably on devices and you should use BuildConfig.DEBUG to do conditional checks instead.
  • The icon asset generator is much faster
  • Improved Add Library Dependency editor:
  • It now uses the IDE's Maven index to do much quicker searches
  • It includes libraries from the local Maven repositories such as the support library and Google Play Services
  • It includes many other commonly requested libraries
  • It has better query rewriting rules to make searches work better

New in Android Studio 0.4.4 Build 133.1005886 (Feb 6, 2014)

  • Bug fixes. A lot of them. Thank you for filing bugs at http://b.android.com, and keep them coming! Of particular note we've fixed the bug where library dependencies were sometimes dropped (and resources and Java symbols show up in red.)
  • Merged to the latest IntelliJ 13 EAP build 133.696
  • Retina support on OSX. If you're displaying Android Studio on a retina-density screen on OSX, using JDK 6 or recent versions of JDK 7, we will render your layouts in full Retina resolution. This is not just for layouts, but for the editor margin previews of drawable resources too. It's hard to convey this on a web page without Retina density, but here's a zoomed in view of the editor preview before (with Retina density text, and non-Retina icon painting as handled in Studio versions prior to 0.4.4)
  • Lint:
  • Lint now checks Gradle files. It will warn about
  • Obsolete dependencies (e.g. not using the latest play services, not using the latest build tools, etc)
  • Using absolute paths
  • Using Windows path separators
  • Using incompatible combinations of tools libraries (such as using a support library older than the target SDK version)
  • Using + syntax in dependencies (not enabled by default)
  • Accidentally calling DSL methods (such as attempting to set versionName by calling a local method named getName)
  • Using constructs not properly handled by the IDE support (such as reassigning a project's directory)
  • New lint check warning about using a with size wrap_contents
  • Lint checks suggesting to use SparseLongArray and LongSparseArray
  • Lint running inside Android Studio now consults a project's lint.xml (to for example change the severity of an issue from warning to error or vice versa)
  • The layout editor now supports rendering device frames (which was only available in layout preview until this point). It also has a render settings menu (to turn off device frames) and a Refresh action.
  • Templates:
  • Newly created projects are initialized with the right build.gradle setup such that you can simply put .jar and .aar files into the libs/ directory and they will automatically be used (similar to how the libs/ folder worked in Eclipse ADT.)
  • The New Notification template is back (found under New > Android Component)
  • Gradle Integration:
  • The Gradle daemon is shutdown on IDE exit, which should fix the Android Studio update mechanism on Windows (starting after the next update.)

New in Android Studio 0.4.3 Build 133.988757 (Jan 24, 2014)

  • Support for the new version of the Android Gradle plugin 0.8. It does not require updating; you can continue to use version 0.7 of the gradle plugin with this version of Studio
  • Updated to the latest IntelliJ 13 EAP build, #133.609 (release notes)
  • Gradle IDE support
  • Updating from one version of the Gradle plugin to the next is easier; rather than just opening a search window showing .gradle files referencing the plugin, the upgrade quickfix now performs the edits to the plugin dependency and the gradle wrapper properties file directly and in one shot
  • We now automatically sync with Gradle's model after a build if we detect that the model is stale
  • Fixed a bug around library syncing (where library dependency classes and resources could suddenly not be found by the IDE)
  • Lint
  • New lint check which looks for cycles in style definitions, cycles in layout definitions, cycles in resource aliases and cycles in color and drawable definitions
  • New lint check for duplicate item definitions inside styles
  • New lint check for padding symmetry in right-to-left contexts
  • New lint check for a resource definition pattern which can cause some versions of aapt to crash
  • Layout editing
  • The layout editor property sheet now handles setting properties in custom namespaces
  • Improved threading behavior of layout rendering code (which should make editing in the XML editor with the layout render preview window more responsive)
  • In addition to creating new locales from the Locale menu you can now open up and edit existing translations
  • Fixed bug where the layout editor could show stale resource strings
  • Eclipse Import
  • You can now import Eclipse-style projects even if they don't have .classpath and .project files as long as they use the same directory structure
  • More graceful handling of imports if there is a problem such as a missing dependency
  • Many other bug fixes

New in Android Studio 0.4.2 Build 133.970939 (Jan 9, 2014)

  • Fixes an important bug related to building projects found in 0.4.1 released earlier today

New in Android Studio 0.4.1 Build 133.967590 (Jan 9, 2014)

  • Updated to the latest Intellij 13.0.2 release build, 133.471.
  • Gradle IDE integration:
  • New option for setting command line flags passed to Gradle, which for example allows you to pass any Gradle command line flag to the build.
  • The project structure dialog now handles build.gradle file editing better, such as preserving comments and code blocks inside lists that it is editing
  • For newly created projects, the plugin and repositories are defined in a single place, in the top level build.gradle, rather than in each module’s build.gradle file.
  • Gradle 1.10 has been released, but Android Gradle plugin 0.7.3 (which Studio 0.4.1 is using) does not work properly with Gradle 1.10, and the error message was very confusing (because the plugin crashes before it gets to the version check). In 0.4.1 we detect the mismatched version earlier and give a sensible message. We are working on an updated Android Gradle plugin which (among other feature work) will work with Gradle 1.10.
  • Streamlined import. If a project contains a gradle wrapper, or if Studio knows where Gradle is installed, the project is imported directly without asking for more information.
  • Many fixes around Gradle sync error handling and notification. We now give better feedback during a sync (with editor notifications), and especially after a sync if the sync failed, since in that case a lot of functionality will not work right. There are more diagnostics and suggestions which should help pinpoint and address the problems.
  • Eclipse project import:
  • Supports importing instrumentation tests. When importing an ADT project, it looks at the sibling directories and the child directories of the imported project, and if it finds an instrumentation ADT project, the sources are merged into the Gradle instrumentation test source set of the project.
  • Supports importing NDK projects. If the imported project contains NDK sources, these are imported into the jni/ source set of the project, the module name is inferred from the Makefile and stored in the Gradle file, and the ndk.dir property is defined in local.properties.
  • Additional import diagnostics, warning about SDK installs missing needed Maven repositories, using obsolete build tools, etc.
  • The import now handles more complex dependencies, using Eclipse linked resources, path variables, and so on. If you point to an Eclipse workspace (or if the project is inside a workspace, the import will find it automatically), it can use the workspace metadata to resolve path expressions; otherwise, you can provide manual mappings for these as part of the import wizard.
  • DDMS:
  • New Heap Dump action, which lets you select a process, generate a heap dump and save it as an HPROF file for use with a memory profiler.
  • Lint:
  • New manifest warning which flags attributes in a manifest file which are ignored and can therefore be misleading
  • Fixed some false positives in checks when used in Gradle projects
  • Layout Rendering:
  • If you have the latest API 19 SDK installed, Nexus 5 is available from the device list
  • Bug fixes:
  • A lot of bug fixes, including but not limited to issues 63534, 63624, 12222499, 63623, 63881, 63622, 58302, 63596, 63926, 64358, 63928, 64014, 63997.

New in Android Studio 0.4.0 Build 132.955124 (Dec 19, 2013)

  • Improvements:
  • Support for the new Android Gradle plugin, 0.7.0, which has improvements for render script, lint, BuildConfig, ProGuard, and additional features around source folders and flavors, along with many bug fixes.
  • Note that Studio 0.4.0 requires the the new version of the Gradle plugin, so you have to migrate your projects to 0.7.0. If you just update your IDE, after loading your old project the IDE will show an error balloon.
  • Studio now supports Gradle Offline mode.
  • This is useful if you find yourself without a network connection, and your dependencies are using the plus-syntax to pick up the latest available version. In that case, Gradle will once per day (by default) connect to the artifact repository to see if there is a more recent version. If that network connection fails, the build fails. If you don't have a network connection, this is problematic. You can now open the Compiler > Gradle options and enable Offline mode, which will tell Gradle to ignore update-to-date checks.
  • Initial Eclipse (ADT) project import. You can now directly import Eclipse projects (rather than having to export them to Gradle from Eclipse as in the past). This importer also makes structural changes to the import
  • It migrates the project structure from the old ADT directory structure to the new Gradle-build system one
  • It removes inlined library projects that it recognizes (ActionBarSherlock, v7 GridLayout) and replaces the source code with a simple Gradle dependency to the corresponding library
  • Similarly it removes .jar files that it recognizes and replaces them with Gradle dependencies
  • It generates an import summary where it lists potential import issues (for example, if you were using library projects without manifest merging, there is potential manifest registration duplication now) (The import does not yet fully support path variables and linked resources; this will be fixed in 0.4.1)
  • The Asset Studio wizard is now available (until this point it was only available as part of the New Project wizard for generating launcher icons). Right click on a drawable folder and invoke "New > Image Asset"
  • You can also create nine-patch images now by right clicking on .png images and invoking "Create Nine Patch...".
  • A large number of bug fixes, particularly around SDK handling and project import/upgrade, but also to the rendering sandbox, custom view rendering, template handling, etc.

New in Android Studio 0.3.7 Build 132.932373 (Dec 4, 2013)

  • Gradle:
  • The experimental "Direct Gradle Invocation" mode is now the default. This should result in builds being about 20% faster, and the raw Gradle error output can now be found in the Gradle Console window. (You can turn off this mode in Settings > Compiler > Gradle). (The bug related to this with unsaved edits in Studio 0.3.6 has also been fixed.)
  • Improved error diagnostics. In addition to fixing error parsing for manifest merging errors, dex exceptions and multi-line javac errors, there are now import hyperlinks for resolving common import problems, such as missing platforms, missing support library repositories, or errors in local properties.
  • Improved SDK management. When opening a project which points to a specific SDK (via its local.properties file), Studio will check whether that SDK corresponds to the IDE SDK, and if not, will ask the user whether to use the Studio one or the project one. This ensures that IDE and command line builds are consistent.
  • "Add Library As..." on .jar files now works for Gradle projects; it adds in a proper dependency in the build.gradle file
  • New projects now create an empty gradle.properties file (with some commented out suggestions) to make it easier to tweak VM parameters for Gradle
  • Repositories for dependencies can now be edited in the Project Structure Dialog
  • Layout Editing:
  • Layout rendering sandbox: Custom views in layouts are now rendered in a sandbox such that they do not accidentally overwrite files or mistakingly execute commands if they believe they are running in a real Android environment. Note that if you download third party custom view libraries and insert references to these in your own layouts, and then view the layouts in the layout editor, the layout renderer will execute the custom view code in the IDE process with your desktop privileges. We do not promise a completely secure environment for libraries on the desktop; when adding third party libraries you should trust the source or validate that the Gradle files (which are executed at build time) and its custom views (which are executed in the layout editor) are safe. However, the layout rendering sandbox takes some initial steps to locking down access for custom views from doing thing accidentally. RTL Support Improvements: When editing RelativeLayouts in the layout editor, the editor now creates RTL-aware layouts (using start/end in addition to (or instead of, depending on the minSdkVersion) left/right.
  • RTL Multi-configuration Editing: You can now edit your layouts and simultaneously see your layout rendered in an RTL context
  • Templates:
  • New templates for adding custom views, services, broadcast receivers, fragments, daydreams, etc. To invoke, right click on the target package and invoke New > Android Component.
  • Lint:
  • New check looking for potential PRNG (pseudo random number generator) problems.
  • New lint check which looks for calls to Context#checkCallingPermission without using the result of that call (which probably meant to call Context#enforceCallingPermission instead).
  • New lint check which looks in Gradle projects for permission for use of the mock location provider permission and makes sure these are only specified in debug manifests. This helps avoid accidentally requesting that permission in release builds.
  • Bug fixes. Lots of them. Some notable ones:
  • Fix weight handling when resizing elements in a LinearLayout
  • Properly compute bounds of tags in layouts
  • Fix GridLayout editing with API 19
  • Adding activities via templates no longer clobber dependencies in the build.gradle file
  • API check now properly checks nested calls
  • Detect and abort layout rendering on cyclic parent styles
  • Don't flag hex color definition characters as potential typos
  • Fix bug where on startup, layout XML files would be missing the layout editor tab
  • Make Add Translation and Render Locales use only local locales, not all locales referenced by libraries

New in Android Studio 0.3.6 Build 132.917931 (Nov 15, 2013)

  • Issue 62146: Can't open New Module wizard, IDE freezes
  • Issue 61939: Recent edits are not reflected in compiled app. (Also fixed related issues 62129 and 62168).
  • New Intellij EAP merge (to 132.1045: Release notes)
  • Issue 60916: Studio unable to run tests of a Java module
  • Issue 61488 : exclude build/res folder
  • Issue 61860: File choosers in Project Structure should create relative paths
  • Issue 61829: Allow Project Structure to deal with relative module names
  • Issue 60729: Mark res folders as resource folders
  • Issue 61769: Fix template such thatNavigationDrawer does not crash on older versions
  • Other project template changes (for example, move name primary module "app" and don't always append "Project")
  • New lint check which finds usages of check*Permission without consulting the return value (probably meant to use enforce*Permission)

New in Android Studio 0.3.5 Build 132.910074 (Nov 12, 2013)

  • Issue 62011: java.lang.NoClassDefFoundError: Could not initialize class org.gradle.internal.nativeplatform.filesystem.FileSystems$DefaultFileSystem
  • Certain source folders were incorrectly marked as generated folders

New in Android Studio 0.3.4 Build 132.908450 (Nov 11, 2013)

  • Updated platform to IntelliJ 13 beta
  • Gradle:
  • New Module editor. In 0.3.2 we introduced the module dependency editor where you could add libraries graphically; this is now just one tab among many other categories of module data you can edit: flavors, signing configurations, build types, etc. This area is still being actively worked on.
  • Gradle will now build the selected modules rather than all modules when Make is invoked with a selection.
  • Gradle Console. If you enable the new experimental in-process Gradle build mode (Compiler > Gradle > Use in-process build (faster, experimental)), you can open a Gradle Console which will show the full, raw Gradle output rather than just the simplified errors listed in the Messages window. The window does not open automatically, but the Messages window has a "Show Console Output" button in the left-hand-side toolbar, and it also adds a "See complete output in console" message you can double click on to trigger.
  • "Clean project" now runs a clean target to clear all build output.
  • A file-locking bug affecting Windows users has been fixed. This bug would prevent cleaning and rebuilding a project as soon as a layout file had been opened.
  • Layout Editor:
  • Support for using sourceCompatibility 1.7 even the IDE is running on JDK 1.6. We now convert the bytecode of compiled classes on the fly such that they can be executed by the layout renderer.
  • Support non-rectangular shapes in Drawable render preview
  • Drop preview now shows more accurate widget bounds
  • XML editor:
  • When editing layouts, the layout_width and layout_height attributes are inserted automatically
  • The quote-matching bug has been fixed
  • Namespace prefixes are now highlighted separate from attribute names
  • DDMS:
  • Dumpsys support. You can now click on the Dumpsys action in the toolbar, which will execute "adb dumpsys" on the connected device and display information in the editor about the selected process.
  • Nexus 5 device images for the screenshot feature (which optionally surrounds the screenshot with device art).
  • Nexus 5 metadata for creating virtual devices in the emulator
  • Templates:
  • Linked field editing. Editing parameter names such as activity names and layout names now dynamically update other suggestions. For example, if you change the activity name to "HomeActivity", the layout and fragment resource name suggestions change to "activity_home" and "fragment_home". It will also automatically pick unique names when appropriate such that you can create new activities without conflicting with existing ones.
  • The SDK manager is now available from Welcome Wizard so you can configure SDKs before creating a project
  • Many other bug fixes!

New in Android Studio 0.3.2 Build 132.893413 (Nov 1, 2013)

  • Support for language features like the diamond operator, multi-catch, try-with-resources, strings in switches, etc.
  • Support for recording the device screen as a movie.
  • Debugger support for the new ArrayMap class
  • Drawable XML files. When editing drawable XML files, you get an instant preview on the right:
  • Menu XML files. Studio provides a sample rendering of the menu. This may not be accurate (since menu files can be used in various different contexts, and unlike layouts and drawables we are not directly running the framework code), but should still be helpful.
  • Widget XML files.

New in Android Studio 0.3.0 Build 132.878379 (Oct 22, 2013)

  • Updated the IDE base to the IntelliJ EAP build #132.637 sources.
  • Gradle Builds:
  • Much faster gradle project import: Importing one of our apps went down from two and a half minutes to fourteen seconds. This speedup also applies to syncing your existing project with Gradle, reopening existing projects, etc. Furthermore, we now only run the build target to generate sources, not a full compilation.
  • The improved performance is made possible by changes in Gradle 1.8 and Android Gradle plugin version 0.6.+, which are now the minimum supported versions. If you open an already imported project that uses the Gradle wrapper pointing to an old version of Gradle you will be able to automatically fix the wrapper properties and re-import the project.
  • The Gradle 0.6.3 plugin is now also available (or soon available; it is staging on maven central, so should be available in the next few hours), which improves resource merging handling (better error handling, more accurate error locations, source element references no longer merged into the R class documentation, etc).
  • NOTE: Earlier today we published plugin 0.6.2 with incorrect dependencies. Make sure you're using 0.6.3 (or 0.6.1). To be sure, you can explicitly specify "0.6.3" instead of "0.6.+" in your build.gradle files, or run gradlew on the command line with --refresh-dependencies to ensure that Gradle looks up the most recent available version.
  • Gradle Dependency Editing:
  • You can now edit your Gradle module dependencies (and add and remove modules) from the Project Structure dialog; you no longer need to edit your build.gradle file by hand.
  • Template Support:
  • Revised new blank activity template with support for action bars on older versions of Android (via the appcompat library), and new navigation styles such as using the navigation drawer.
  • Layout Rendering:
  • Support for xliff strings. It will now insert id (or if available example) attributes into the layout editor preview strings.
  • As usual, many bug fixes:
  • From b.android.com: 60801, 60823, 59444, 60848, 57904, 60266, 60893, 60879, 60820, 61050, 61113, 60894
  • Other bugs and crashes not tracked in the issue tracker

New in Android Studio 0.2.11 Build 132.855830 Early Access Preview (Oct 4, 2013)

  • We've just released Android Studio 0.2.11. This release contains the following improvements:
  • Updated the IDE base to the IntelliJ EAP build #132.425 sources. Of particular interest to Android Studio users is the new support for Gradle code insight and dependency resolving
  • Canary and Dev channels:
  • We now have additional channels. We will continue to post ~weekly releases, and those will initially go to the Canary channel. If no critical issues are uncovered we will then post the build to the Dev channel.
  • You can find more details on the Android Studio channels on the Preview Channel page.
  • Layout rendering:
  • Support for designtime attributes, which allow you to show sample data in your layouts without affecting the runtime app.
  • Included layouts now render the edited (unsaved) contents of other editor buffers
  • The layout preview is smarter about when to trigger a re-render; for example, it will ignore edits that affect only whitespace or comments, edits to an attribute that does not yet have a value, etc.
  • There's now a large progress indicator in the center of the view for the first render, and a smaller indicator in the upper right corner when re-rendering after editor switches.
  • Fixed issue where the render preview window sometimes didn't open automatically on IDE restart, and fixed issue where switching between files would sometimes briefly show the old layout contents.
  • Improved error message when you accidentally use a drawable resource in place of a color resource
  • Text editing:
  • Resource inlining: Dimension and integer resources are now also inlined, as well as string resources outside method calls. Perhaps more importantly, the long standing issue of resource folds showing stale contents or appearing on the wrong code statement has been fixed
  • The editor spell checker is now aware of the target language used in a Android string resource file, and will no longer use the English dictionary to flag "errors" in for example Spanish text in values-es/strings.xml. If your base values/ folder is not in English, use the tools:locale attribute on the root element to let the tools know what your default language is.
  • Theme resolution chain display (added in 0.2.10) now also handles theme attributes (such as ?foo)
  • Fixed XML validation for dimensions to allow floating point numbers
  • Android Device View, LogCat:
  • Console code folding for elided stack frames. When an exception is nested, the VM will truncate the stack display of the inner exception. It does this when it gets to a point where the rest of the stacktrace is the same as in the outer stacktrace, but many users were not aware of that and thought they were missing vital information. In LogCat inside Android Studio, we now create a fold region on the "4 more ...lines" section, and when you expand it we reconstruct the full stack trace.
  • You can now view the logcat output of a particular process by just clicking on the process in the device panel. If you don't want this behavior, you can deselect the toggle button "Only show logcat from selected process" on the logcat toolbar.
  • Lint:
  • New check for duplicate words in strings
  • Fixed some bugs (which had resulted in false positives in source code involving enums or string arrays)
  • New projects: Improved package validation. Android application package names have stricter package name requirements than Java packages: Package segments cannot start with an underscore, and only ASCII letters (and digits, dots and underscores) can be used.
  • Misc bug fixes in the gradle build area.

New in Android Studio 0.2.10 (Oct 4, 2013)

  • Updated the IDE base to the IntelliJ EAP build #132.325 sources. This fixes the dark theme todo-token color many users reported
  • New integrated performance trace file viewer.
  • Improved Quick Documentation (View > Quick Documentation, or F1):
  • Now resolves framework resources as well, such as @android/string/ok => "Ok"
  • The quick documentation now shows the resource resolution chain. Here we're showing quick documentation for @android:color/primary_text_dark; in addition to resolving this to the color #ffffff, which is shown, it also shows the color reference chain was @android:color/primary_text_dark, which pointed to a statelist file primary_text_dark.xml, and from there we picked up the default state to go to @android:color/bright_foreground_dark, which resolves to @android:color/background_light, and that color is finally defined as #ffffffff. (There are some additional fixes for this feature to handle theme attributes (?name) in the preview build.)
  • As shown above, we now preview colors (previously we only showed drawable bitmaps, and textual resources such as strings and dimensions).
  • For array resources, we now display the elements of the arrays
  • In Java files, resource documentation and editor margin previewing now properly handles android.R resources.
  • The feature which displays icons in the left hand gutter for drawable references is now finds the smallest density bitmaps of a resource to use for editor margin previews. Since large images are ignored for performance reasons, this makes more icons eligible for editor preview.
  • Layout Rendering:
  • Layout rendering now detects cycles in layout dependencies and displays the invalid chain
  • Added new Nexus 7 device specs to the preview render device list along with device frame art (which also works for the Screenshot action)
  • If you have the Android source code installed for the Android version currently being rendered, and a custom view throws an exception during painting, the stack frame displayed in the error output will hyperlink directly to the relevant code in the Android source code for frames in the android package.
  • Editing:
  • Indirect AAR library dependencies are now handled correctly
  • Gradle Integration:
  • Much faster project import! When using Gradle 1.8 and the Android Gradle plug-in 0.5.7 you'll experience considerably faster project imports.
  • Android Studio now saves Gradle's VM options across sessions
  • Further improvements to the Gradle output parser: it now recognizes duplicate resource errors specifically, and adds separate error messages pointing directly to each of the declaration locations in the separate files
  • Fixed bug where it was not possible to import a project using the Gradle wrapper with Gradle 1.6
  • Fixed miscellaneous bugs, including a deadlock

New in Android Studio 0.2.9 Build 132.830170 Early Access Preview (Sep 17, 2013)

  • Updated the IDE base to the IntelliJ EAP build #132.197 sources.
  • This might fix the subversion bug many users have reported
  • New "Extract Dimension Resource" refactoring
  • Improved bitmap caching in the layout editor, which should help with the out of memory exceptions people have reported
  • Fixed gradle error message output parsing from merged value xml files
  • Allow projects to be created when missing gradle dependencies
  • Fix bug in lint project handling which sometimes led to stack overflow exceptions

New in Android Studio 0.2.8 Build 132.821530 Early Access Preview (Sep 12, 2013)

  • IDE:
  • Updated the IDE base to the IntelliJ EAP build #132.106 sources
  • Lint:
  • Lint is now properly supported in the IDE. In particular, it now understands library dependencies, such that you for example will no longer get warnings from third party libraries, e.g. unused resources in the appcompat library
  • Several lint checks were tweaked: it no longer complains about missing CREATOR fields in interfaces, the API check handles nested conditionals for SDK_INT checks, and the Handler leak check no longer flags handlers using specific loopers
  • Gradle Integration:
  • The project structure dialog now shows custom content for Gradle projects. In particular, there is a new panel where you can choose a single installation home for your Android SDK; you no longer need to go and create individual SDK instances for each build target
  • We've also hidden panels that do not apply since information edited there is thrown away during model syncing with the Gradle files.
  • Removed actions from the Build menu that do not apply in Gradle projects (such as Generate Ant Build.)
  • Importing Gradle projects now intercepts attempts to import the directory rather than the build.gradle file, which in earlier versions would use the wrong type of import. Similarly, we detect attempts to directly import projects from ADT and suggests exporting as a Gradle project from Eclipse first
  • Support for features in the next version of the Android plugin (not yet released), such as importing projects with unresolved dependencies, supporting a compile-only action, etc
  • Fix misc bugs, such as layout render error mesage handling for DatePicker, a bug which caused adding missing sizes to replace @dimen sizes, and the XML source editor bug where it would incorrectly warn about "Fix "Namespace '' not bound".

New in Android Studio 0.2.7 Build 132.809981 Early Access Preview (Sep 6, 2013)

  • IDE:
  • Updated the IDE base to the IntelliJ EAP build #132.27 sources (previously, we've used nightly snapshots)
  • Editing:
  • .aar (Android Archive files, which are used when you for example use a Gradle dependency on the support library) are now properly handled by the editors. In earlier versions, the layout editor could render resources from .aar dependencies, but now code completion, XML resource validation etc. also properly handle these dependencies.
  • The IDE will no longer auto-import the "android.R" class, since that can easily lead to confusion between the imported R class and the application R class. Similarly, if you use the Preferences > Code Style > Java > Imports > Insert Imports for Inner Classes mode, it will now deliberately exclude R classes.
  • The API detector now properly checks methods inherited through the support library classes
  • An important bug related to file refreshing after builds was fixed; this should fix cases of the R class not being resolved and shown in red in the editor.
  • XML validation now properly handles empty parent style references (used in the appcompat library), and the layout rendering now handles HTML entities in style definitions
  • XML code completion now works on @+id/ and theme (?attr) prefixes.
  • Gradle Integration:
  • The Gradle tool window now displays all available tasks for a Gradle-based Android project. We are currently displaying all available tasks, including auto-generated ones which may not be intended for users; we will be cleaning up this lists in future updates.)
  • The gradle output parser has been revamped; it should now properly include source locations for errors in resource merging, and unrecognized output is added as information items, so you should no longer need to go to a terminal and run gradlew to get full diagnostic information; it should all be available within the IDE.
  • HTTP proxy settings in the IDE are now passed to Gradle, and gradle connection failures during import/sync point to the proxy configuration panel
  • Important fixes to library dependencies in Gradle project sync
  • The New Project template now offers the Android support library, the Android compatibility library and the Grid Layout backport library as optional dependencies; when the corresponding checkboxes are selected the right dependencies are added to the Gradle files
  • Fix misc user reported crashes

New in Android Studio 0.2.6 Build 130.795381 Early Access Preview (Aug 27, 2013)

  • Merge in new IntelliJ changes.
  • Further fixes to Gradle project import after the big switch to in-process imports in version 0.2.4; improved error diagnostics, particularly around connection failures.
  • Fix the layout editor resource lookup bug ("Couldn't resolve resource @string/hello_world")
  • Automatically apply the Android XML code style if a code style hasn't already been customized. This will make it possible to automatically order XML attributes (check the "Rearrange Entries" checkbox in the "Code > Reformat Code..." dialog.)
  • When creating new templates, open the project view if necessary and select them there as well (in addition to opening the editor)
  • Further resource infrastructure work (for example, layout editors don't have to wait for Gradle project sync at startup) and template infrastructure work

New in Android Studio 0.2.5 Build 130.782403 Early Access Preview (Aug 17, 2013)

  • This is a small release which fixes a couple of issues that came up in 0.2.4: toolbars disappearing unpredictably, and several bugs around SDK management from gradle.

New in Android Studio 0.2.4 Build 130.777423 Early Access Preview (Aug 15, 2013)

  • Merged with the latest IntelliJ 13 development snapshot. This included a lot of Android editor work, including:
  • Support for XML attribute documentation. Until now, only XML tags had documentation, but as of this release you can invoke F1 (View | Quick Documentation) on an XML attribute to view its SDK documentation. If you've enabled auto-popup of documentation (Options > Editor > Code Completion > Autopopup code completion) this will also show the documentation while completing.
  • Ability to jump between a layout and its associated activity. Navigate | Related File... will now let you jump between a layout and its associated activity. You can also click on the editor margin icons which are shown for this purpose.
  • Intention to create missing onClick handlers (as well as navigation for existing click handlers).
  • Many, many other editor fixes, such as the ability to navigate to parent styles in theme definitions, XML flag completion improvements, XML dimension unit completion, app namespace attribute handling in code completion, navigation to permissions, actions and categories in manifest files, and ability to work with SDK sources. For details, see IntelliJ YouTrack issues 57990, 91585, 102168, 102168, 102176, 102173, 92709, 102169, 102177 and 111650. And that's just the Android specific fixes; the platform itself had hundreds of CLs. Note however that we grabbed a daily snapshot, not a stable milestone.
  • Gradle integration improvements:
  • Project synchronization with Gradle, during startup, is now non-blocking.
  • Importing or creating a Gradle-based Android project does not use RMI anymore, resulting in less overhead. We are currently working with the Gradle and IntelliJ teams on making project import faster.
  • Renaming a module folder (not a module itself) updates the project’s settings.gradle file.
  • In addition to providing better error messages during project import, Android Studio also provides links to actions that can help users solve the relevant issue.
  • Updated the bundled Gradle version in Android Studio to 1.7.
  • Layout Editing:
  • The chosen rendering locale is now project wide (except for layouts located in locale-specific layout folders). Switching to different locale will now apply to all layouts in the same project. As part of this work the erratic locale behavior of locales (which could open up in random locales) should be fixed.
  • Rendering targets are now also project wide, and there is a new "Automatically Pick Best" mode, on by default, which causes the rendering target to pick the best available version.
  • Some bugs related to rendering custom views should be fixed.
  • Lint:
  • There is a new lint check which makes sure that methods which override View#onDetachedFromWindow also end up calling super.onDetachedFromWindow(). Failure to do this can lead to significant memory leaks.
  • There is a new lint check which looks for additional types of typos in namespace declarations.
  • Lint's API check now handles non-numeric minSdkVersion declarations in the manifest (e.g. when using code names for preview platforms.)

New in Android Studio 0.2.3 Build 130.762670 Early Access Preview (Aug 2, 2013)

  • This is a minor release that includes more user-friendly error messages when importing or creating a Gradle-based Android project.

New in Android Studio 0.2.2 Build 130.754168 Early Access Preview (Jul 30, 2013)

  • Updated Cloud Endpoints to version 0.2.6.
  • Module dependencies are exported, allowing other modules in the project to use them.
  • Bug fixes, including the one that forced users to have a local.properties files to build the project inside Android Studio.

New in Android Studio 0.2.0 Build 130.737825 Early Access Preview (Jul 12, 2013)

  • Merged in the latest IntelliJ codebase changes. In addition to new features this includes fixes for issues reported by Studio users such as tweaks to Linux font sizes and font rendering.
  • Gradle IDE integration fixes:
  • Android Gradle plug-in 0.5.0. This new version of the plug-in is not backwards compatible.
  • Gradle errors from aapt no longer point to merged output files in the build/ folder, they point back to the real source locations
  • Parallel Builds. It's now possible to use Gradle's parallel builds. Please be aware that parallel builds are in "incubation". This feature is off by default. To enable it, go to "Preferences" > "Compiler" and check the box "Compile independent modules in parallel."
  • Inter-module dependencies are now properly configured. Instead of depending on the compiled output, we link to the module itself, making it possible to debug code.
  • Updated to the new Gradle Plugin version 0.5:
  • Fixed IDE model to contain the output file even if it's customized through the DSL. Also fixed the DSL to get/set the output file on the variant object so that it's not necessary to use variant.packageApplication or variant.zipAlign
  • Fixed dependency resolution so that we resolved the combination of (default config, build types, flavor(s)) together instead of separately.
  • Fixed dependency for tests of library project to properly include all the dependencies of the library itself.
  • Fixed case where two dependencies have the same leaf name.
  • Fixed issue where Proguard rules file cannot be applied on flavors.
  • Further work on the new resource repository used for layout rendering, resource folding in the editor, etc:
  • Basic support for .aar library dependencies (e.g. using a library without a local copy of the sources). Still not working for resource XML validation and navigation in source editors.
  • Cycle detection in resource references
  • Quick Documentation (F1), which can show all translations of the string under the caret, will now also show all resource overlays from the various Gradle flavors and build types, as well as libraries. They are listed in reverse resource overlay order, with strikethrough on the versions of the string that are masked. In the below screenshot for example, we have flavors f1/f2 and fa/fb, and the string has both a default translation and a values-no version only in flavor fa, and this is all shown in the table which pops up when you press F1 with the caret on the string key name
  • You can also invoke Quick Documentation when editing a strings.xml file by invoking it in the name value attribute, to see all the alternate translations. Note that this feature is not just specific to strings; you can invoke Quick Documentation to see the various resource overlays of dimensions, drawables, etc.
  • Fixes to handle updating the merged resources when the set of module dependencies change
  • XML rendering fixes to properly handle character entity declarations and XML and unicode escapes
  • Save Screenshot support for the layout preview and layout editor windows
  • Template bug fixes:
  • New projects now get a properly configured local.properties file on creation.
  • Various bug fixes to the new project/module/activity wizards
  • Lint bug fixes
  • And fixes for a number of crash reports; thanks for submitting these.

New in Android Studio 0.1.9 Build 130.729444 Early Access Preview (Jul 2, 2013)

  • Much faster Gradle builds within the IDE, particularly for projects with multiple modules. The build performance should be roughly the same as running gradle on the command line.
  • Instrumentation test support, which was added in 0.1.8, now also supports debugging instrumentation tests
  • Various bug fixes