Release notes

This page outlines release changes to the Android Game Development Extension.

July 2021 - v21.1

important Android Game Development Extension (AGDE) is now generally available.
feature Added support for customizing the gradle build directory.
feature Added support for specifying additional gradle inputs for more accurate incremental gradle builds.
feature Added colorization to error/warning logs in logcat.
fixed Issue with intellisense not working on VS2019 16.9.2+.
fixed Reduced the overhead of the logcat tool window, and improved the performance of searching / filtering logcat items.
fixed An issue where processes sometimes didn't appear in the process list when attaching to a remote device.
fixed Issue where breakpoints would sometimes linger after being removed in the UI.
fixed An issue where an ILLEGAL_ACCESS_EXCEPTION was thrown by the the embedded JDK.

April 2021 - v0.11

feature Added Natvis support.
feature Added format specifiers support.
feature Logcat window now filters by default instead of searching.
feature Added NDK r22B support (this is now the default). Details
fixed Improved device compatibility. Added a workaround for a race condition in Android adb implementation.
fixed Improved logcat window performance.
fixed Debug/Terminate all buttons mirror behavior of other platforms. Stopping after "Run with Debugger" now terminates the app.
fixed Logcat line column is now called text to match search filter.
fixed Fixed a bug that disconnected the debugger upon hitting a breakpoint.
fixed Changing a file in a dependent project now rebuilds the APK.
fixed Fixed a duplicate symbol linker error that occurred if source file was deleted, or if code was moved to a new file.

February 2021 - v0.10

fixed Improved device compatibility. Added a workaround for a race condition in Android ADB implementation.
feature Added support to launch the Android SDK Manager.
feature Added support to launch the Android Virtual Device Manager.
feature Added Memory view.
feature Added Disassembly view.
feature Added Registers window.
feature Added Unreal engine support starting with UE 4.26.1.

January 2021 - v0.9

important Based on feedback, we've renamed platforms to substitute underscores in favor of spaces for ease of use; now "Android x86" is "Android-x86" (and the same applies to other ABIs). All build scripts and projects that reference the Android Platform will need to be updated.
fixed Improved debugging step performance with async resolution
fixed Fixed a bug where linking was always full instead of incremental
fixed The extension now always uses the bundled version of JVM instead of relying on JAVA_HOME to be set properly
feature Updated profilers to now include support for native memory profiling
feature Added a canary channel for quicker bug fix releases. The stable channel remains the default. This can be changed in the options page.

November 2020 - v0.8.21 hotfix

fixed Fixed an issue that broke incremental building.
fixed Added an input delay to logcat search/filter to improve performance.
fixed Added a lock scrolling button to logcat. This locks the scroll to the newest logcat entry.

October 2020 - v0.8

feature Added logcat tool window. This is accessible via the plugin toolbar.
feature For your convenience, a file a bug button has been added to the plugin toolbar that will link you to our issue tracker and prefill a new issue with metadata about your tools setup.
feature Open logs button added to the plugin toolbar.
fixed A bug where the debugger sporadically may not attach to a new: process
fixed A bug where some devices were not located by the plugin
important Required We now require JDK 11+ to be set in JAVA_HOME

September 2020 - v0.7.15 hotfix

fixed Fixed an issue that caused debugging to significantly slow down the app.
fixed Fixed an issue that caused stepping in / over code to fail on ARM devices.
fixed Fixed an issue that caused the app to crash when profiling.

August 2020 - v0.7

feature LLDB upgraded from LLDB 7.0 to LLDB 11.0, resulting in various performance fixes for Android including a significantly-reduced attach latency.
important Breaking change: LLDB scripting tool upgraded from Python 2.7 to Python 3.8. Any user scripts that are not compatible with Python 3 style need to be updated.
changed Significantly-improved deploy speed to devices running Android 8 and later.
fixed For projects generated where AndroidEnablePackaging is set before importing Microsoft.Cpp.props, the gradle build was not triggered. This has been resolved by checking the value of AndroidEnablePackaging before initialization.

July 2020 - v0.6

feature Added launch flags for debugger properties.
feature Updated NDK version r21 to r21c.
feature Added support for launching standalone Android Studio Profilers from Visual Studio to profile your game.
changed Visual Studio and Android Studio can now both run at the same time.
changed Installer now installs the extension for detected versions of VS 2017 and 2019.
fixed Bugs in switching and deploying build configs.

May 21st, 2020 - v0.5

feature Visual Studio 2019 is now supported.
feature NDK version r18b is now supported.
important Breaking change: Renamed enum options for MSBuild properties UseOfStl and CppLanguageStandard. Any names that include c++ or gnu++ must be renamed to cpp and gnupp, respectively.
changed Disallow LLDB process control commands on shell to prevent VS and LLDB going out of sync.
changed NDK version is now passed from MSBuild to Gradle via the MSBUILD_NDK_VERSION property.
changed Updated Gradle version from 5.6 to 5.6.4 in Add APK template.
changed Updated Android Gradle Plugin version from 3.5.0 to 3.6.3 in Add APK template.
changed We now catch APK install errors that require uninstall and ask if you want to uninstall or reinstall.
fixed Build performance bug where UpdateTrackerFile took a long time for larger projects.
fixed Bug where literal "\n" or "\r\n" showed in some dialogs.
fixed Bug where starting debugger would steal focus.
fixed Fixed bug in LLDB shell where the wrong error message would be printed when a command wasn't recognized.
fixed Bug in MSBuild targets where absolute path in LinkOutputFile didn't work.
fixed Bugs in "modules" window to make it more useful and dependable.

March 23rd, 2020 - v0.4

GDC release

feature Added automatic checking for new versions of the Android Game Development Extension.
fixed Fixed case where cancel dialog would not appear for long-running operations such as logcat waiting for PID with matching package name.
fixed In build.gradle, changed jniLibs.srcDirs to append rather than assign.
fixed Added logging to Clang Compile that shows the .cpp file being built.
fixed Removed linker MSBuild property "Version" because it isn't useful (it just shows the Clang version number).
fixed Made it an error for linker to not produce the expected output .so. Before, we relied on errors from the linker but there are flags (like using --version flag) that cause the linker to produce no errors and no output .so.
fixed Fixed a bug where disabling MSBuild "StackRealign" caused the wrong flag to be passed to Clang.
fixed Added notes about open source licenses used.
fixed Added metrics opt-in checkbox in installer.
fixed Pulled samples out of installer and placed them in a separately downloadable zip.
fixed Fixed bug where design-time build was broken in the case when NDK wasn't available.
fixed Fixed case where rebuilding APK incrementally didn't work.
fixed Removed non-Windows gRPC libraries from installer.
fixed Added timeout for jdb.exe attach.
fixed Changed release builds to include full debugger information instead of just lines.
fixed Fixed bug where logcat would occasionally crash VS.

March 3rd, 2020 - v0.3

Pre-GDC release

feature Added a formal installer, changed from .vsix to .exe.
feature Added a license key to the product. If you forgot or misplaced your license key that we shared with you, please contact us.
feature Added additional samples which can be installed as part of the new installer. Note that the samples are now built against NDK version R21.
feature Added optional anonymized usage metrics to help us improve the product.
fixed Improved debugger exit latency.
fixed Clicking on a build error now takes you to the source file and line.
fixed Added support for additional command line arguments in C/C++ > Command Line > Additional Options.
fixed Converted NDK version picker to a dropdown.
Known Issues
issue Can't modify or change the project settings (such as changing the NDK version) for the new samples in their default location unless the samples are moved out of the ProgramData folder.
issue No syntax highlighting or Intellisense support for Kotlin/Java/Gradle.
issue C++ Intellisense: #include <iterator> : E0070 incomplete type is not allowed.
issue Adding an RC file to the build causes a build error.
issue All breakpoints appear as bound (never show as pending). This issue is cosmetic only.
issue List of modules in the Show Modules panel is incomplete.
issue Output window (logcat) won't show device processes launched after the initial app starts.
issue Cannot connect to the debugger when Android Studio is open.
issue Incremental builds don't sign the APK properly.

December 18th, 2019 - v0.2

Second release

feature Added LLDB variable formatting support for debugging.
feature Added watch expressions support for debugging.
feature Added a sample project (Teapot).
fixed Fixed extra Gradle arguments not being passed into gradlew.
fixed Added the APK output location to build output.

November 7th, 2019 - v0.1

Initial release

feature Configure your project to be able to deploy to different Android platform targets.
feature Build and run your project on physical devices or emulators.
feature Debug your native code using the built-in VS debugger via LLDB.
feature Integration with Incredibuild.