Releases: google-ar/arcore-android-sdk
ARCore SDK for Android v1.21.0
Upcoming breaking change affecting Cloud Anchors apps built using ARCore SDK 1.11.0 or earlier
Beginning in December 2020, AR-enabled apps built using ARCore SDK 1.11.0 or earlier will no longer be able to host or resolve Cloud Anchors.
- C: Cloud Anchors returned by
ArSession_hostAndAcquireNewCloudAnchorandArSession_resolveAndAcquireNewCloudAnchorwill always have the stateAR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL. - Java: Cloud Anchors returned by
Session#hostCloudAnchor(Anchor)andSession#resolveCloudAnchor(java.lang.String)will always have the stateAnchor.CloudAnchorState.ERROR_INTERNAL.
Apps built with ARCore SDK 1.12.0 or later are unaffected. Their use of Cloud Anchors APIs is covered by the Cloud Anchors deprecation policy.
Known issues
- Issue 141500087: When using Android Emulator
x86_64system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86system image.
Breaking & behavioral changes
None.
New APIs and capabilities
- Added Recording and Playback of ARCore datasets. The Recording feature lets the app capture the data required to replay the AR session.
- C: Developer guide,
ArSession_startRecording(),ArSession_stopRecording(),ArRecordingConfig(),ArSession_getRecordingStatus(),ArSession_getPlaybackStatus(),ArSession_setPlaybackDataset(). - Java: Developer guide,
session.startRecording(recordingConfig),session.stopRecording(),RecordingConfig(),session.getRecordingStatus(),session.setPlaybackDataset(),session.getPlaybackStatus().
- C: Developer guide,
- Added new APIs for Stereo Camera usage in
CameraConfigFilterandCameraConfig:- C: Developer guide,
ArCameraConfigFilter_getStereoCameraUsage()ArCameraConfigFilter_setStereoCameraUsage()ArCameraConfig_getStereoCameraUsage(). - Java: Developer guide,
CameraConfigFilter.getStereoCameraUsage(),CameraConfigFilter.setStereoCameraUsage().CameraConfig.getStereoCameraUsage(). - Support for stereo camera depth is expected to become available in ARCore SDK 1.22.0.
- C: Developer guide,
Deprecations
None.
Other changes
- C: Updated
ArCoreApk_requestInstallto clarify runtime behavior, noting when and how ARCore device profile data is downloaded and updated. - Java: Updated hello_ar_java to use Environmental HDR Lighting Estimation mode.
Bug fixes
- Fixed memory leak in hello_ar_c, which now correctly releases acquired depth images.
- Fixed crash in hello_ar_java which occurred on certain GPUs.
ARCore SDK for Android v1.20.0
Known issues
- Issue 141500087: When using Android Emulator
x86_64system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86system image.
Breaking & behavioral changes
- Beginning in December 2020, AR-enabled apps built using ARCore SDK 1.11.0 or earlier will no longer be able to host or resolve Cloud Anchors. Apps built with ARCore SDK 1.12.0 or later are unaffected. To learn more about this breaking change, and for instructions on how to update your app, see the Cloud Anchors deprecation policy.
New APIs and capabilities
- Added persistent Cloud Anchors, which let you increase the time-to-live (TTL) of Cloud Anchors to 365 days. With the Cloud Anchor Management API, you can also extend the lifetime of a Cloud Anchor. Use of persistent Cloud Anchors is covered by the new Cloud Anchors deprecation policy.
- Updated image metadata capabilities:
C: The newArImageMetadata_getAllKeysandArImageMetadata_getConstEntryfunctions let you get image metadata without having to call the Android NDK camera stack APIs. See the developer guide
Java: TheImageMetaData#get*(int)method now also throwsMetadataNotFoundException. See the developer guide.
Deprecations
- The
ArImageMetadata_getNdkCameraMetadatahas been deprecated and should no longer be called.
Other changes
- Java: Added new persistent_cloud_anchor_java sample app.
- Changed hello_ar_java and hello_ar_c samples to acquire depth images only when tracking is active. This avoids logging unactionable errors when tracking is not active.
Bug fixes
- Fixed an issue where Chrome WebXR
immersive-arstopped working on 64-bit Android Q+.
ARCore SDK for Android v1.19.0
Breaking change affecting previously published 32-bit-only apps
Google Play Services for AR (ARCore) has removed support for 32-bit-only ARCore-enabled apps running on 64-bit devices. Support for 32-bit apps running on 32-bit devices is unaffected.
If you have published a 32-bit-only (armeabi-v7a) version of your ARCore-enabled app without publishing a corresponding 64-bit (arm64-v8a) version, you must update your app to include 64-bit native libraries. 32-bit-only ARCore-enabled apps that are not updated may crash when attempting to start an augmented reality (AR) session.
To learn more about this breaking change, and for instructions on how to update your app, see https://developers.google.com/ar/64bit.
Known issues
- Issue 141500087: When using Android Emulator
x86_64system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86system image.
New APIs and capabilities
- Added the Instant Placement API, which enables apps to bypass the surface-scanning step for faster AR object placement in a given scene. As the user moves further around the environment, Instant Placement refines and moves the object if needed.
- C: Developer guide,
ArConfig_setInstantPlacementMode,ArConfig_getInstantPlacementMode,ArInstantPlacementPoint,ArFrame_hitTestInstantPlacement. - Java: Developer guide,
Config.setInstantPlacementMode,Config.getInstantPlacementMode,InstantPlacementPoint,Frame.hitTestInstantPlacement. - Added example use of Instant Placement in
hello_ar_javasample andhello_ar_csample.
- C: Developer guide,
- Added
<queries>element in ARCore SDK's manifest file to support Package visibility in Android 11. This requires apps to build with Gradle 5.6.4 or later and Android Gradle Plugin 3.6.0 or later.
Deprecations
None.
Other changes
- Updated Java and native sample apps to
targetSdkVersion29 (Android 10). - Refactored hello_ar_java to be easier to read.
- Modified hello_ar_java to have a simpler plane rendering logic.
- Modified augmented_image_java, augmented_image_c, and hello_ar_c to consistently use premultiplied alpha blending.
- Added
diffuseTextureAssetNameparameter to specify the texture that should used inAugmentedFaceRenderer.createOnGlThread. - Added calls to
Session.closein all Java sample apps to explicitly release native resources when destroying the activity. - Moved glm code used by samples to third_party/glm from libraries/glm.
LICENSEfile now lists only the dependencies of the ARCore SDK binary and not Maven dependencies of the samples.- Fixed incorrect license URL in
com.google.ar.coreMaven POM file.
Bug fixes
- Fixed a crash in hello_ar_c caused by incorrect arguments being passed to
ArFrame_transformCoordinates2dinHelloArApplication::GetTextureTransformMatrix. - Fixed an issue where disabling Augmented Images would not reduce ARCore's CPU utilization rate as expected. Setting a null or empty Augmented Images database now reduces ARCore's CPU usage. Note, however, the CPU utilization is not reduced while Instant Placement is enabled. See ARCore Performance considerations for details.
ARCore SDK for Android v1.18.1
Note: this is a Google Play Services for AR (ARCore) APK-only release (version 1.18.1). The SDK version remains unchanged (version 1.18.0).
Bug fixes
- Fixed a minor issue affecting Google Lens.
ARCore SDK for Android v1.18.0
Upcoming breaking change affecting previously published 32-bit-only apps
In August 2020, Google Play Services for AR (ARCore) will remove support
for 32-bit-only ARCore-enabled apps running on 64-bit devices. Support for
32-bit apps running on 32-bit devices is unaffected.
If you have published a 32-bit-only (armeabi-v7a) version of your
ARCore-enabled app without publishing a corresponding 64-bit (arm64-v8a)
version, you must update your app to include 64-bit native libraries before
August 2020. 32-bit-only ARCore-enabled apps that are not updated by this time
may crash when attempting to start an augmented reality (AR) session.
To learn more about this breaking change, and for instructions on how to update
your app, see https://developers.google.com/ar/64bit.
Known issues
- Issue 141500087: When using Android Emulator
x86_64system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86system image.
Breaking & behavioral changes
targetSdkVersioninside the ARCore Android Archive (AAR) file has been updated to API level 29. Specifying atargetSdkVersionin your project'sbuild.gradleorAndroidManifest.xmlwill override the ARCore value.
New APIs and capabilities
- Added new Depth API that provides a calculated depth image with each frame. Check the list of ARCore supported devices to see which devices support the Depth API.
Deprecations
None.
Other changes
- Updated Java and native HelloAR sample apps to include Depth API usage.
- Migrated Augmented Faces Java sample app from Sceneform to direct OpenGL calls.
Bug fixes
- Fixed Cloud Anchors Privacy link in the
cloud_anchor_javasample app. The incorrect link now redirects to the correct link, so existing apps with the incorrect link don't need to be updated.
ARCore SDK for Android v1.17.0
Upcoming breaking change affecting previously published 32-bit-only apps
In August 2020, Google Play Services for AR (ARCore) will remove support
for 32-bit-only ARCore-enabled apps running on 64-bit devices. Support for
32-bit apps running on 32-bit devices is unaffected.
If you have published a 32-bit-only (armeabi-v7a) version of your
ARCore-enabled app without publishing a corresponding 64-bit (arm64-v8a)
version, you must update your app to include 64-bit native libraries before
August 2020. 32-bit-only ARCore-enabled apps that are not updated by this time
may crash when attempting to start an augmented reality (AR) session.
To learn more about this breaking change, and for instructions on how to update
your app, see https://developers.google.com/ar/64bit.
Known issues
None.
Breaking & behavioral changes
None.
New APIs and capabilities
- Added APIs for buffering sequential camera frames in a fixed-size texture queue, to support use cases such as multithreaded rendering pipelines.
- Added missing depth sensor usage and target FPS getters:
Deprecations
None.
Other changes
- Java: Added medium resolution option on the
computervision_javasample.
Bug fixes
- Fixed a bug that caused a crash during the first installation of ARCore on certain devices.
ARCore SDK for Android v1.16.0
Upcoming breaking change affecting previously published 32-bit-only apps
In August 2020, Google Play Services for AR (ARCore) will remove support
for 32-bit-only ARCore-enabled apps running on 64-bit devices. Support for
32-bit apps running on 32-bit devices is unaffected.
If you have published a 32-bit-only (armeabi-v7a) version of your
ARCore-enabled app without publishing a corresponding 64-bit (arm64-v8a)
version, you must update your app to include 64-bit native libraries before
August 2020. 32-bit-only ARCore-enabled apps that are not updated by this time
may crash when attempting to start an augmented reality (AR) session.
To learn more about this breaking change, and for instructions on how to update
your app, see https://developers.google.com/ar/64bit.
Breaking & behavioral changes
- Beginning with ARCore SDK 1.16.0, most devices will now return additional supported camera configs with lower GPU texture resolutions than the device's default GPU texture resolution. See the ARCore supported devices for details.
New APIs and capabilities
- Expanded GPU resolutions are now available on more devices through the
getSupportedCameraConfigs(CameraConfigFilter)API. See ARCore supported devices for details.
Deprecations
None.
Other changes
- Cleaned up documentation for
ArCameraConfigFiltertype.
Bug fixes
- Fixed the triangle winding direction in
BackgroundRendererin our samples, allowing it to work withGL_CULL_FACE.
ARCore SDK for Android v1.15.0
Breaking & behavioral changes
- Update: A bug caused this feature to not work in 1.15.0, which is fixed in 1.16.0.
Beginning with ARCore SDK 1.15.0, some devices will now return additional supported camera configs with lower GPU texture resolutions than the device's default GPU texture resolution. See the ARCore supported devices for details.
New APIs and capabilities
- None
Deprecations
- None
Other changes
- Vertical plane detection works better on surfaces with low visual texture.
Bug fixes
- None
ARCore SDK for Android v1.14.1
Note: This is a Google Play Services for AR (APK) only release.
Bug fixes
- Fixes an issue that caused Google Play Services for AR to crash on some devices
ARCore SDK for Android v1.14.0
Breaking & behavioral changes
None.
New APIs and capabilities
- Added
CAMERA_UNAVAILABLEto theTrackingFailureReasonenumeration to represent a temporary loss of the camera to another app on the device. After an app regains priority, tracking will resume. - Adds native error stack traces for some status failures.
Deprecations
None.
Other changes
None.
Bug fixes
- Fixed the Shared Camera sample's black frame flicker when switching between AR and non-AR modes.