Releases: google-ar/arcore-android-sdk
ARCore SDK for Android v1.27.0
Known issues
- None
Breaking & behavioral changes
- None
New APIs and capabilities
- None
Deprecations
- None
Other changes
- Added hello_ar_kotlin to demonstrate best practices when using Kotlin. For more information see the QuickStart for Android.
- Added ml_kotlin to demonstrate how an image classification model can be used with ARCore. For more information see Use ARCore as input for Machine Learning models.
Bug fixes
- None
ARCore SDK for Android v1.26.0
Known issues
- None
Breaking & behavioral changes
targetSdkVersion
inside the ARCore aar has been updated to API level 31. Specifying atargetSdkVersion
in your project'sbuild.gradle
orAndroidManifest.xml
will override the ARCore value.
New APIs and capabilities
- Added support for describing ARCore dataset locations with
URI
s for Recording and Playback.- C: Developer guide
- Java: Developer guide
Deprecations
- The file path string based Recording and Playback methods
RecordingConfig#getMp4DatasetFilePath()
andRecordingConfig#setMp4DatasetFilePath()
have been deprecated in favor of URI based methodsRecordingConfig#getMp4DatasetUri()
andRecordingConfig#setMp4DatasetUri()
.
Other changes
- Updated Java and native sample apps to
targetSdkVersion
31 (Android 12).
Bug fixes
- None
ARCore SDK for Android v1.25.0
New APIs and capabilities
- None
Deprecations
- None
Other changes
- Updated Java and native sample apps to
targetSdkVersion
30 (Android 11).
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for Android v1.24.0
New APIs and capabilities
- Added new Raw Depth API that provides a depth image without image-space filtering.
- All devices that support the existing Depth API in ARCore supported devices now also support the new Raw Depth API.
- Java: Developer guide,
Frame#acquireRawDepthImage()
,Frame#acquireRawDepthConfidenceImage()
,Config.DepthMode.RAW_DEPTH_ONLY
. - C: Developer guide,
ArFrame_acquireRawDepthImage()
,ArFrame_acquireRawDepthConfidenceImage()
,AR_DEPTH_MODE_RAW_DEPTH_ONLY
.
- Added new Custom Data Track Recording/Playback API, augmentations of the recording and playback features that allow developers to record and playback data to and from custom specified tracks, packaged as MP4 recordings.
- Added new trackable type
DepthPoint
that provides a calculated depth pose with each frame by hit testing. These values are sampled from the latest depth image, which yields more accurate results on non-planar or low-texture areas in the environment.
Deprecations
None
Other changes
- Java: Added new raw_depth_java sample app.
- Java: Updated hello_ar_java to use
DepthPoint
hit results fromFrame#hitTest()
when placing assets. - C: Updated hello_ar_c to use
ArDepthPoint
hit results fromArFrame_hitTest()
when placing assets.
Bug fixes
- Fixed memory leaks in hello_ar_c when rendering a plane that was subsumed and when attempting to render a plane that was not being tracked.
ARCore SDK for Android v1.23.0
Breaking & behavioral changes
- AR-enabled apps built using ARCore SDK 1.11.0 or earlier are no longer able to host or resolve Cloud Anchors.
- C: Cloud Anchors returned by
ArSession_hostAndAcquireNewCloudAnchor
andArSession_resolveAndAcquireNewCloudAnchor
will 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 deprecation policy.
- C: Cloud Anchors returned by
New APIs and capabilities
- Developers can enable ARCore API call logging to the Android debug log by sending a broadcast intent.
- Developers can enable the ARCore performance overlay by sending a broadcast intent.
- Added new API for switching between rear-facing (world) and front-facing (selfie) camera configs within the current
Session
.
Deprecations
- The following session features are being deprecated:
- Java: Feature
FRONT_CAMERA
is deprecated. To create a session using the front-facing (selfie) camera, useSession.setCameraConfig(CameraConfig)
to set a front-facing(selfie) camera config retrieved fromSession.getSupportedCameraConfigs(CameraConfigFilter)
. - C: Feature
AR_SESSION_FEATURE_FRONT_CAMERA
is deprecated. To create a session using the front-facing (selfie) camera, useArSession_setCameraConfig
to set a front-facing(selfie) camera config retrieved fromArSession_getSupportedCameraConfigsWithFilter
.
- Java: Feature
Deletions
- The following deprecated APIs have been deleted:
Other changes
- Java: Updated hello_ar_java to use the cubemaps provided by Environmental HDR Lighting Estimation for specular reflections.
- Updated augmented_faces_java sample app to use the new
ArCameraConfigFilter_setFacingDirection()
API to create a session using the front-facing (selfie) camera instead of using theFRONT_CAMERA
Session feature, which has been deprecated. - Updated computer_vision_c sample app to use functions of 'ArImage' instead of functions of
AImage
to obtain image data, to avoid using previously deprecatedArImage_getNdkImage
.
Bug fixes
- Various bug fixes and performance improvements.
ARCore SDK for Android v1.22.0
Breaking & behavioral changes
- Beginning in January 2021, 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_hostAndAcquireNewCloudAnchor
andArSession_resolveAndAcquireNewCloudAnchor
will 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.
- C: Cloud Anchors returned by
Known issues
- Support for stereo camera depth is expected to become available in ARCore SDK 1.23.0.
New APIs and capabilities
None.
Deprecations
None.
Other changes
- Java: Updated hello_ar_java to use the cubemaps provided by Environmental HDR Lighting Estimation for specular reflections.
Bug fixes
- Various bug fixes and performance improvements.
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_hostAndAcquireNewCloudAnchor
andArSession_resolveAndAcquireNewCloudAnchor
will 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_64
system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86
system 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
CameraConfigFilter
andCameraConfig
:- 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_requestInstall
to 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_64
system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86
system 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_getAllKeys
andArImageMetadata_getConstEntry
functions 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_getNdkCameraMetadata
has 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-ar
stopped 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_64
system images on macOS with ARCore SDK 1.16.0 or later, Google Play Services for AR will crash. As a workaround, use anx86
system 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_java
sample andhello_ar_c
sample.
- 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
targetSdkVersion
29 (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
diffuseTextureAssetName
parameter to specify the texture that should used inAugmentedFaceRenderer.createOnGlThread
. - Added calls to
Session.close
in 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.
LICENSE
file 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.core
Maven POM file.
Bug fixes
- Fixed a crash in hello_ar_c caused by incorrect arguments being passed to
ArFrame_transformCoordinates2d
inHelloArApplication::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.