Jetpack SceneCore
| Последнее обновление | Стабильный релиз | Предварительная версия для выпуска | Бета-версия | Альфа-версия |
|---|---|---|---|---|
| 19 мая 2026 г. | - | - | - | 1.0.0-alpha15 |
Объявление зависимостей
Чтобы добавить зависимость от XR SceneCore, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .
Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha15" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha15") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha15") }
Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .
Обратная связь
Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.
Для получения более подробной информации см. документацию по системе отслеживания ошибок .
Версия 1.0
Версия 1.0.0-alpha15
19 мая 2026 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha15 . Версия 1.0.0-alpha15 содержит следующие коммиты .
Изменения в API
-
Entity.dispose()теперь удален из публичного API. Вместо вызоваdispose()для экземпляров Entity, приложения могут сделать экземпляры очищаемыми, установивparentвnullи очистив все сильные ссылки на эти экземпляры. ( I396c9 ) - Методы
set/clearOnLoadCompleteListenerSoundEffectPoolбыли удалены. Вместо них используйтеadd/removeLoadCompleteListener. ( Iae78d ) -
set/clearSpatialVisibilityChangedListenerв Scene был заменен наadd/removeSpatialVisibilityChangedListener. ( I67dff ) - Все методы SceneCore
add/removeOnFooListenerбыли переименованы вadd/removeFooListener, из названия удаленоOn. ( Ibe50b ) - Методы
AnchorEntity.setOnOriginChangedListenerиAnchorEntity.setOnStateChangedListenerбыли заменены методамиadd/removeFooListenerдля поддержки одновременной работы нескольких слушателей. ( I13749 ) - Переименован
AnchorEntity.State.TIMEDOUTвState.TIMED_OUT. ( Id2b8d ) - API компонентов был переработан для повышения безопасности и расширяемости.
Componentтеперь является абстрактным классом. МетодыonAttach()иonDetach()теперьprotected, чтобы предотвратить прямые вызовы. Пожалуйста, используйтеEntity.addComponent()иEntity.removeComponent()для управления жизненным циклом компонентов. ( Id04e8 ) - Константы
PlaneSemanticTypePlaneOrientationв SceneCore были переведены из типа Int в пользовательский тип. Их константыANYбудут удалены; клиентам следует явно перечислять все необходимые константы или использовать новые неизменяемые константы типа Set с параметром.ALL. Фабричный методAnchorEntityтеперь принимает Set этих типов вместо одного значения. ( Ib1033 ) - Добавлена поддержка скелетной анимации (скиннинга) в экспериментальный API пользовательских мешей. Теперь разработчики могут анимировать пользовательские меши, указывая
boneCountпри созданииMeshEntityи обновляя анимацию в реальном времени с помощьюMeshEntity.setBoneTransforms(). ( Id8ba2 , b/496692490 ) - Представлен экспериментальный API
CustomMesh. Теперь разработчики могут программно создавать и отображать 3D-геометрию в своих сценах, используяCustomMesh,MeshBufferиMeshEntity. ( I94617 ) - Удален
androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELD. ИспользуйтеSourceType.SOUND_FIELDвместо него. ( Ia68b9 ) - Добавление компонентов пространственного звука:
PositionalAudioComponent,SoundEffectPoolComponentиSoundFieldAudioComponent( Ieda89 ) -
AnchorEntity.getAnchorбыл заменен наAnchorEntity.anchorи теперь будет возвращатьAnchorеслиAnchorEntityбыл создан из объекта ARCoreAnchor( I5c7c8 ). - Значение по умолчанию для параметра
parentв фабричных методахActivityPanelEntity,GltfModelEntity,GroupEntity,PanelEntityиSurfaceEntityизменено сActivitySpaceнаnull. Чтобы прикрепить сущность к графу сцены и сделать её видимой, разработчикам теперь необходимо явно установить её родительский элемент при создании экземпляра или с помощьюEntity.parent = ...( Ie7cc1 )
Исправлены ошибки
- Теперь
SceneCoreавтоматически освобождает экземплярыEntity, когда они становятся недоступными, устраняя необходимость для разработчиков явно вызыватьdispose()для освобождения ресурсов. Чтобы гарантировать корректное освобождение экземпляра [Entity], разработчикам следует:- Отсоедините его от графа сцены, установив для его
parentзначениеnull. - Удалите все сильные ссылки на экземпляр в своем коде.
- Примечание о специальных типах сущностей: Для сущностей, которые не могут быть дочерними (например,
AnchorEntity), разработчики должны поддерживать сильную ссылку, пока экземпляр используется. Если все ссылки будут освобождены, эти экземпляры станут фантомно доступными и будут автоматически освобождены. ( I83fe4 )
- Отсоедините его от графа сцены, установив для его
- Сужены правила сохранения Proguard для всех библиотек
SceneCore. ( I98447 )
Известные проблемы
- Прикрепление компонента
PositionalAudioComponentкEntityс неактивным экземпляромExoPlayerприведет к сбою. Не вызывайте методsetPointSourceParamsи не прикрепляйте/открепляйте компоненты пространственного звука, пока ExoPlayer остановлен. Эта ошибка будет исправлена в следующем релизе.
Версия 1.0.0-alpha14
6 мая 2026 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha14 . Версия 1.0.0-alpha14 содержит следующие коммиты .
Изменения в API
-
TrackingStateиVpsAvailabilityResultперенесены вandroidx.xr.arcore package, а типы вandroidx.xr.runtimeтеперь устарели. ( Ic7930 , b/480462213 ) - Переименована
Plane.TypeвPlaneType. ( I8c90c , b/482675376 ) - Переименован
Plane.LabelвPlaneLabel. ( Ic6b67 , b/482675376 ) -
androidx.xr.runtime.FieldOfViewустарел. Используйтеandroidx.xr.runtime.math.FieldOfViewвместо него. ( Ia01a0 , b/480233045 ) -
Matrix4.poseпереименован вMatrix4.toPose(). Свойство pose теперь устарело. ( I329b4 , b/493383490 ) - Переименованы значения перечисления
HandJointType. ( Ifbc83 , b/482670596 ) - Предоставить доступ к
Component.onAttachиonDetachв качестве публичного API для возможности реализации пользовательскихComponent. ( I0ca1f ) - Добавление компонентов пространственного звука ( I39ddd , b/489421980 , b/436642086 , b/436642499 )
- Удалите Entity из
PointSourceParams. Вместо этого Entity будет использоваться напрямую сSpatialAudioTrack,SpatialSoundPoolиSpatialMediaPlayer( Ib3685 , b/489421980 , b/436634048 ). - Переименовано
DeviceTrackingMode.LAST_KNOWNвSPATIAL_LAST_KNOWN(с устаревшим резервным вариантом), добавленоINERTIAL_LAST_KNOWNдля отслеживания 3 степеней свободы и добавленоTRACKING_DEGRADEDвTrackingState. ( Ie661c , b/445466590 ) - Устаревшая
GroupEntity. Чтобы получить сущность только с базовой функциональностью, вызовитеEntity.create, которая вернет интерфейс сущности. ( I4c450 , b/473867483 ) - Добавлен API
XrLog. УстановитеXrLog.isEnabledвtrue, чтобы включить логирование в JetpackXR, и используйтеXrLog.Levelдля установки уровня логирования. ( I76a1f , b/463460895 , b/487378441 )
Исправлены ошибки
- Теперь
Scene.keyEntityпо умолчанию принимает значениеmainPanelEntity. ( I6a3ef )
Версия 1.0.0-alpha13
25 марта 2026 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 . Версия 1.0.0-alpha13 содержит следующие коммиты .
Изменения в API
- Удалён флаг
unscaledGravityAlignedActivitySpaceизSession.create.ActivitySpaceтеперь всегда не масштабируется и выравнивается по гравитации. ( If6f11 , b/458173423 ) - Удалены устаревшие функции
setMaterialOverrideиclearMaterialOverrideизGltfModelEntity, которые теперь вызываются для отдельныхGltfModelNode. ( I2e5d2 ) - Добавлены
transformPixelCoordinatesToLocalPositionиtransformNormalizedCoordinatesToLocalPositionвPanelEntity, а также удалены эквивалентные экспериментальные методы, которые ранее возвращали позы вместо позицийVector3. ( Ib6960 , b/460123106 , b/458333591 ) - Добавлены API
GltfAnimationдля управления glTF-анимациями вSceneCore. ( I2c172 , b/466065486 , b/465819070 , b/465818617 ) - Переименована
ScenePose.activitySpacePoseвScenePose.poseInActivitySpace( I8f175 , b/427822261 ) - Добавлена реализация среды выполнения Scenecore Projected Runtime ( I9c4ab , b/476440158 )
- При изменении размера основной панели она может сместиться в исходное положение в
ActivitySpace. Единственный способ обойти эту проблему — вручную или программно вернуть панель в исходное положение. Эта ошибка будет исправлена в будущей версии. ( b/489427007 ). - В некоторых случаях интерактивные возможности
MovableComponentмогут не отображаться дляSurfaceEntityи других типов сущностей, отличных от Panel. Явное указаниеMovableComponent.sizeприведет к отображению интерактивных возможностей. Эта ошибка будет исправлена в будущей версии ( b/490983469 ).
Версия 1.0.0-alpha12
25 февраля 2026 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha12 . Версия 1.0.0-alpha12 содержит следующие коммиты .
Известные проблемы
- Закрепленные объекты могут через несколько секунд вернуться из своей закреплённой позиции в начало координат пространства активности.
- Приложения могут аварийно завершать работу при создании экземпляров
SurfaceEntity. Эта проблема решена вandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13и последующих версиях. Затронутым приложениям следует обновиться до последних версий.
Изменения в API
-
ActivitySpace.addOnSpaceUpdatedListenerиActivitySpace.removeOnSpaceUpdatedListenerбыли переименованы вaddOnOriginChangedListenerиremoveOnOriginChangedListener.AnchorEntity.setOnSpaceUpdatedListenerбыл переименован вsetOnOriginChangedListener. ( I5d8fb ) - Добавлено общедоступное свойство имени к
FakeEntityи сделано общедоступным представление дляFakePanelEntity. ( Ifa1f9 )
Исправлены ошибки
- Исправлены вычисления плотности пикселей на более новых образах системы ( I57d04 )
Версия 1.0.0-alpha11
28 января 2026 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 . Версия 1.0.0-alpha11 содержит следующие коммиты .
Изменения в API
- Переименовывает
PerceivedResolutionResult.InvalidCameraViewвPerceivedResolutionResult.InvalidRenderViewpoint, поскольку APIgetPerceivedResolutionтеперь используют APIRenderViewpointиз ARCore вместоCameraViewScenePose. Это название лучше отражает новую реализацию. ( I8c967 , b/446989745 , b/419311998 ) - Методы
PanelEntity/SurfaceEntity.getPerceivedResolutionтеперь принимают в качестве аргументаRenderViewpointпредоставленный разработчиком. Ранее среда выполнения произвольно выбиралаRenderViewpointиспользуемый при вычислении воспринимаемого разрешения. ( I8c967 , b/446989745 , b/419311998 ) - Удалены
SpatialUser,ScenePose.HeadиScenePose.CameraView. Функциональность этих API реализована в APIArDeviceиRenderViewpointв рамках ARCore для Jetpack XR. Чтобы получитьScenePoseсоответствующую голове пользователя или левому или правому глазу, разработчики могут использоватьPerceptionSpace.getScenePoseFromPerceptionPoseс соответствующей позой, полученной с помощью API ARCore. ( I2f69c , b/446989745 )
Версия 1.0.0-alpha10
3 декабря 2025 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты .
Изменения в API
- Добавлены
transformPixelCoordinatesToPoseиtransformNormalizedCoordinatesToPoseвPanelEntity( I462b3 ). - В
SceneCoreRuntime добавлен вспомогательный класс Utils, основанный на логикеSceneCore( I570b9 ).
Исправлены ошибки
- Исправлена потенциальная ошибка, которая может привести к сбою при уничтожении сессии и получении события
SpatialModeChangeEvent( If44e8 ). - Исправлена ошибка, из-за которой при выходе из Activity или повторном входе в него могло возникать исключение
IllegalStateException. ( Ibff1c )
Версия 1.0.0-alpha09
19 ноября 2025 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты .
Новые функции
- Добавляет API для получения объекта
ScenePose, представляющего собой композицию исходной позы в пространстве восприятия и позы относительно начала координат в пространстве восприятия. ( I5b50a ) - Добавлена функция
getGravityAlignedPose. Поза, выровненная по силе тяжести, игнорирует тангаж и крен вращения. ( I5ae21 ) - Типы констант
AnchorEntity.Stateбыли изменены с целых чисел на подтипы State. ( Ib0c49 ) - Добавлен метод
getChildren()в интерфейс Entity. Обновлен жизненный циклMainPanelEntity. ( Ia69d6 )
Изменения в API
- Типы констант
PointerCaptureComponent.PointerCaptureStateбыли изменены с Int на подтипыPointerCaptureState. ( Ic888a ) - Теперь
Scene.spatialCapabilitiesимеет типSet<SpatialCapability>вместо поля типа Int. КонстантыSpatialCapabilityбыли переименованы. ( I9c109 ) - Константные типы
SurfaceEntityбыли переименованы и заменены с Int на подтипыSurfaceEntity. ( I419ed ) - Константные типы
SpatializerConstantбыли переименованы и изменены с Ints на подтипыSpatializerConstant. ( Ia0e18 ) - Константные типы
TextureSamplerбыли переименованы и изменены с Int на подтипыTextureSampler. ( I44078 ) - Типы констант
SpatialVisibilityбыли изменены с целых чисел на подтипыSpatialVisibility. ( I70739 ) - Константные типы
ResizeEvent.ResizeStateбыли переименованы и изменены с Int на подтипыResizeState. ( I384d5 ) - Константные типы
InputEventбыли переименованы и изменены с типа Int на тип, наследующий от соответствующего объемлющего типа. ( I82817 ) - Типы констант
GltfModelEntity.AnimationStateбыли изменены с Int на подтипыAnimationState. ( I24f4e ) - Константные типы
AlphaModeбыли переименованы и изменены с Ints на подтипыAlphaMode. ( I27b56 ) - Типы констант
Spaceбыли изменены с целых чисел на подтипы пространства. ( I9255b ) - Методы
ScenePose.hitTestи связанные с ним теперь возвращаютnullесли пересечение не найдено, вместоHitTestResultс nullhitPosition.HitTestResult.hitPositionбольше не допускает значения null. ( I1400a ) - Изменены ссылки на
ActivityPoseнаScenePose. ( I7fe43 )
Версия 1.0.0-alpha08
22 октября 2025 г.
Выпущена версия androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит следующие коммиты .
Изменения в API
- Переименована
ActivityPanelEntity.moveActivityвtransferActivity( I273c5 , b/430332856 )
Исправлены ошибки
-
:xr:scenecore:scenecore-spatial-renderingи:xr:scenecore:scenecore-spatial-coreдобавлены в качестве зависимостей реализации:xr:scenecore:scenecore( I6ab65 , b/447000520 ) - Исключение возникает, если обращение
session.sceneпроисходит после уничтожения сессии. ( I77e6f )
Версия 1.0.0-alpha07
24 сентября 2025 г.
Выпущены androidx.xr.scenecore:scenecore:1.0.0-alpha07 , androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07 и androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит следующие коммиты .
Изменения в API
- Переименовали
fixedAspectRatioвisFixedAspectRatioEnabledи сделали его логическим свойством ( I5c4e8 , b/440588971 ). - Поддельные объекты
Scenecoreтеперь находятся в модулеxr:scenecore:scenecore-testing. ( Idd951 ) - Переименованы
shouldAutoHideContentвisAutoHideContentWhileResizingEnabledиshouldAlwaysShowOverlayвisAlwaysShowOverlayEnabled( I97c36 , b/432335421 ) - Для повышения читаемости обновлены константы
SceneCoreTextureSampler, например,TextureSampler.MinFilter.LINEARтеперь называетсяTextureSampler.MIN_FILTER_LINEAR( Ib159c ) - Метод
setKeyEntityобъекта Scene был объединен с переменнойkeyEntity. УстановкаkeyEntityв неперемещаемую сущность, такую какAnchorEntityприведет к возникновению исключенияIllegalArgumentExceptionвместо возврата логического значения false. ( I62080 , b/428721695 , b/422215745 ) - Переменная
SpatialModeChangeListenerобъекта Scene была заменена наsetSpatialModeChangedListener. Теперь она принимаетConsumer<SpatialModeChangeEvent>вместоSpatialModeChangedListener.setSpatialModeChangedListenerтеперь может опционально принимать Executor. ( I62080 , b/428721695 , b/422215745 ) - Удалён параметр
bundleизActivityPanelEntity.startActivity( I64344 , b/430332856 , b/430333040 ) - Переименование
SpatializerConstants.SOURCE_TYPE_BYPASSвSpatializerConstants.SOURCE_TYPE_DEFAULT. ( Ifc7fe , b/422215565 ) - Добавлена константа
SpatialSoundPool.PLAY_FAILED. ( Ifc7fe , b/422215565 ) - Добавлены аргументы по умолчанию к методам
SpatialSoundPool.play. ( Ifc7fe , b/422215565 ) - Удалено возвращаемое значение сеттеров в
SpatialAudioTrackBuilder. ( Ifc7fe , b/422215565 ) - Изменения SurfaceEntity
-
SurfaceEntity.CanvasShapeпереименован вShape -
SurfaceEntity.CanvasShape.Vr180HemisphereпереименованHemisphere -
SurfaceEntity.CanvasShape.Vr360SphereпереименованоSphere -
SurfaceEntity.EdgeFeatheringParams.SmoothFeatherпереименованRectangleFeather -
SurfaceEntity.EdgeFeathingParams.SolidEdgeпереименован вNoFeathering -
SurfaceEntity.ContentSecurityLevelпереименованSurfaceProtection -
SurfaceEntity.ContentSecurityLevel.{values}добавлен префиксSURFACE_PROTECTION_. -
SurfaceEntity.SuperSampling.{$values}добавил префиксSUPER_SAMPLING_ -
SurfaceEntity.StereoMode.{values}добавлен префиксSTEREO_MODE_ -
SurfaceEntity.ContentColorMetadata.maxCLLпереименован вmaxContentLightLevel( I7eb5f , b/422216050 , b/427529950 )
-
- Переименована
launchActivityвstartActivity( I7db90 , b/430332856 ) - Удален
Scene.activitySpaceRoot. ИспользуйтеScene.activitySpaceвместо него. ( I05ee8 , b/378706624 , b/422215745 ) -
configureBundleForFullSpaceModeLaunchиconfigureBundleForFullSpaceModeLaunchWithEnvironmentInheritedпереименованы вcreateBundleForFullSpaceModeLaunchиcreateBundleForFullSpaceModeLaunchWithEnvironmentInheritedсоответственно и перемещены в файл LaunchUtils.kt в качестве методов верхнего уровня, принимая Session в качестве первого параметра ( I64a2c , b/437186050 ). - Фабрика
GroupEntityтеперь возвращает типGroupEntityвместо Entity. ( I66042 )
Исправлены ошибки
- Выбрасывать исключение
IllegalStateExceptionпри использовании экземпляра сущности после освобождения ресурсов. ( I90990 , b/427314036 , b/432063442 )
Версия 1.0.0-alpha06
13 августа 2025 г.
Выпущены androidx.xr.scenecore:scenecore:1.0.0-alpha06 , androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06 и androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит следующие коммиты .
Изменения в API
- Разблокировать API
BaseEntityиBaseScenePoseSceneCore( 88c0ff6 )
Версия 1.0.0-alpha05
30 июля 2025 г.
Выпущены коммиты androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05 , androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05 и androidx.xr.scenecore:scenecore:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит следующие коммиты .
Новые функции
- API восприятия разрешения добавлен к сущностям панелей и
SurfaceEntities. ( I118f6 ) - В файл Scene.kt добавлены методы обратного вызова
PerceivedResolutionдля мониторинга воспринимаемого разрешения главной панели активности в HSM. ( I58084 ) -
SurfaceEntity— Добавлена поддержка запроса суперсэмплирования при создании объекта приложением. Это позволяет приложениям использовать фильтр суперсэмплирования для сглаживания. ( I06913 ) - Добавлено свойство
recommendedContentBoxInFullSpaceкActivitySpace. Оно возвращает рекомендуемый блок для размещения контента в режиме Full Space. ( I4cd6f ) - Предоставлен перегруженный конструктор для модификатора movable, позволяющий устанавливать привязку. ( Ic0c70 )
Изменения в API
В этом релизе в SceneCore были внесены существенные изменения в API. Несколько классов были переименованы и/или перемещены в другие модули, а большинство методов getter/setter были заменены свойствами Kotlin. Хотя мы ожидаем будущих изменений в API, нарушающих совместимость, до нашего первого бета-релиза, они не будут столь масштабными и существенными.
- Переименованы и/или перемещены следующие классы и интерфейсы:
androidx.xr.scenecore.PixelDimensionsвandroidx.xr.runtime.math.IntSize2d;androidx.xr.scenecore.Dimensionsвandroidx.xr.runtime.math.FloatSize3d;androidx.xr.scenecore.ActivityPoseвScenePose,androidx.xr.scenecore.ContentlessEntityвGroupEntity,androidx.xr.scenecore.PlaneTypeвPlaneOrientation;androidx.xr.scenecore.PlaneSemanticвPlaneSemanticType. ( Ifd405 )( I3b622 ) ( If534d ) - Ряд параметров, определяющих свойства
Scene, были сделаны приватными; они не предназначались для изменения клиентамиSceneCore:activitySpace,activitySpaceRoot,mainPanelEntity,perceptionSpace,spatialCapabilities,spatialEnvironmentиspatialUser. ( I2f506 ) - В сущности: Изменено следующее на свойства:
get/setParent(),setContentDescription; УстарелEntity.is/setHidden(), используйте вместо негоEntity.is/setEnabled. ( Ibc4c6 ) - Удалён класс
androidx.xr.scenecore.BasePanelEntity, вместо него используетсяPanelEntityнапрямую. Геттеры и сеттеры дляPanelEntityзаменены свойствами. СвойствоPanelEntity.sizeизменено сFloat3dSizeнаFloat2dSize. Удалён устаревший методandroidx.xr.scenecore.PanelEntity.getPixelDimensions, вместо него используетсяgetSizeInPixels. ( Icc174 ) - Заменен
androidx.xr.scenecore.OnSpaceUpdatedListenerнаRunnable. ( I19308 ) - Заменил
SpatialUser.getCameraViews()на свойство. ( Ib0cc5 ) ДляExrImageиGltfModel:Изменил методыcreateна функции приостановки; изменил параметры создания, чтобы они принималиUriилиPathвместоString. ( Id8883 ) ( I0d247 ), ( I25706 ) - Перемещены
SpatialEnvironment.requestFullSpaceModeиSpatialEnvironment.requestHomeSpaceModeв раздел Scene, например, используйтеsession.scene.requestFullSpaceMode()вместоsession.scene.spatialEnvironment.requestFullSpaceMode().addOnPassthroughOpacityChangedListenerиaddOnSpatialEnvironmentChangedListenerтеперь имеют переопределения, принимающие необязательные Executor. ( I12fe0 ) ( I6b21e ) - Удалены следующие устаревшие методы
SpatialEnvironment:togglePassthrough,setPassthrough,setPassthroughOpacity,getPassthroughMode,getPassthroughOpacity,setSkyboxиsetGeometry. Также удален устаревший классSpatialEnvironment.PassthroughMode( I927bd ) ( I927bd ) ( I927bd ) - Заменены следующие геттеры и сеттеры
SpatialEnvironmentна свойства Kotlin:getCurrentPassthroughOpacity(),get/setPassthroughOpacityPreference(),get/setSpatialEnvironmentPreference(),isSpatialEnvironmentPreferenceActive()( I33a7b ) ( Ie06e2 ) ( Ie06e2 ) - Тип
SpatialEnvironmentPreference.preferredPassthroughOpacityизменен сFloat?наFloat. Он больше не принимает значения null. Вместо этого используетсяSpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCE, указывающее на отсутствие настроек прозрачности. ( I40107 ) - В методе create параметр
windowBoundsPxбыл изменен наpixelDimensions, а его тип — с Rect наIntSize2d. ( I1926e ) - Конструктор
SpatialEnvironmentтеперь является внутренним ( I75a51 ) - Заменены классы
SpatialPointerIconNoneиSpatialPointerIconCircleна сопутствующие объектыSpatialPointerIcon.NONEиSpatialPointerIcon.CIRCLE( I416d2 ) -
SpatialPointerIconвSpatialPointerComponentбольше не допускает значения null. ИспользуйтеSpatialPointerIcon.DEFAULTвместо null, чтобы указать, что следует использовать системный значок указателя по умолчанию. ( I416d2 ) - Заменен
androidx.xr.scenecore.AnchorEntity.getState()на свойство только для чтения. Переименованы параметры методаAnchorEntity.create()для большей ясности. В методахAnchorEntityдля установки и добавления слушателей слушатель перемещен в качестве последнего аргумента, чтобы включить завершающие лямбда-выражения. Замененandroidx.xr.scenecore.OnStateChangedListenerдляAnchorEntityнаConsumer<AnchorEntity.State>. ( I472e0 ) -
GltfModelEntity.getAnimationState()теперь является свойством. ( I10b29 ) - Заменил
ActivitySpace.getBounds()на свойство. ПереименовалActivitySpace.addBoundsChangedListenerвActivitySpace.addOnBoundsChangedListener. ЗаменилActivitySpace.setOnSpaceUpdatedListenerна методы добавления/удаления. ( I4c956 ) - Для
AnchorPlacement: planeTypeFilterбыл переименован вanchorablePlaneOrientations,planeSemanticFilterбыл переименован вanchorablePlaneSemanticTypes. ДобавлениеMovableComponentкAnchorEntityилиActivitySpaceвернет false,MoveListenerбыл переименован вEntityMoveListener shouldDisposeParentAnchorбыл переименован вdisposeParentOnReAnchor systemMovableбыл удален из функцииcreateв пользуcreeateCustomMovable,createSystemMovableиcreateAnchorable( If11c4 ). - Удален класс
SurfaceEntity.featherRadiusX/Yи добавлена концепция классаEdgeFeatheringParams. ( Ic78fc ) - Метод
PanelEntity.enablePanelDepthTest()заменен свойствомpanelClippingConfig. УстановитеScene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true)чтобы включить проверку глубины, или установитеPanelClippingConfig(isDepthTestEnabled = false)чтобы отключить ее. ( I0cbe0 ) -
Scene.mainPanelEntityтеперь имеет типMainPanelEntityвместоPanelEntity( I7125a ) - Метод
setFullSpaceModeобъекта Scene переименован вconfigureBundleForFullSpaceModeLaunch, а методsetFullSpaceModeWithEnvironmentInherited— вconfigureBundleForFullSpaceModeLaunchWithEnvironmentInherited. ( I0cbe0 ) ( I0cbe0 ) - Переименованы значения UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV и WITHIN_FOV для
SpatialVisibilityв SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW и SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW соответственно ( Ie7e8c ) - Класс
SpatialVisibilityзаменен на публичный объект с константными целочисленными значениями.setSpatialVisibilityChangedListenerтеперь принимаетConsumer<Int>вместоConsumer<SpatialVisibility>( Ie7e8c ). - Константы
PointerCaptureComponentпереименованы и перемещены в объектPointerCaptureComponent.PointerCaptureState( I9c7ac ) - Заменил
PointerCaptureComponents' StateListenerнаConsumer<Int>. ( I9c7ac ) - Заменен
InputEventListenerнаConsumer<InputEvent>( I9c7ac ) -
setPreferredAspectRatioперемещен из класса Scene в объектSpatialWindowи принимает Session в качестве первого параметра. ( I7b717 ) -
Entity.setHidden()заменен наEntity.setEnabled(), аEntity.isHidden()заменен наEntity.isEnabled().setHidden(false)равноsetEnabled(true), аisHidden() == !isEnabled(). ( Icf0de ) - Тип
Entity.contentDescriptionизменен со String наCharSequence. ( IE59be ) -
Session.createиSession.configureтеперь выбрасывают исключениеSecurityException, если не предоставлены достаточные разрешения, вместо возвратаSessionCreatePermissionsNotGrantedилиSessionConfigurePermissionsNotGranted. ( I7c488 ) -
ResizableComponent.createтеперь требует наличия объектаConsumer<ResizeEvent> ResizeEventListenerбыл заменен наConsumer<ResizeEvent> ResizableComponent.sizeбыл переименован вResizableComponent.affordanceSize ResizableComponent.minimumSizeбыл переименован вResizableComponent.minimumEntitySize ResizableComponent.maximumSizeбыл переименован вResizableComponent.maximumEntitySize.ResizableComponent.autoHideContentбыл переименован вResizableComponent.shouldAutoHideContent.ResizableComponent.forceShowResizeOverlayбыл переименован вResizableComponent.shouldAlwaysShowOverlay( I97a2d ). -
minSDKдляandroidx.xr.scenecoreиandroidx.xr.composeуменьшен до 24. Пакеты XR по-прежнему требуют API 34 во время выполнения. ( I17224 ) - Снято ограничение
RequiresApi(34)для всех пакетов Jetpack XR. Это ограничение было излишним, поскольку Jetpack XR в настоящее время доступен только на устройствах с уровнем API 34 и выше. ( Iae0f8 ) - Основной артефакт
SceneCore(xr:scenecore:scenecore) будет содержать только асинхронные API в стиле Kotlin. Java-разработчики могут использовать библиотекуxr:scenecore:scenecore-guavaдля доступа к совместимым API. ( If221b ) - Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия ( Idb6b5 ).
- В этой библиотеке теперь используются аннотации JSpecify, определяющие наличие нулевого значения , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования:
-Xjspecify-annotations=strict(это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin) ( Ia8420 ) - Все асинхронные методы, возвращающие
ListenableFutureбыли заменены функциями приостановки Kotlin. Java-разработчики, желающие использовать асинхронные методы на основеListenableFutureвместо функций приостановки Kotlin, теперь должны использовать функции расширения в:xr:scenecore-scenecore-guava. Например,GuavaExrImageсодержит эквивалентные асинхронные функции ExrImage для Guava,GuavaScenePoseсодержит эквивалентные асинхронные функцииScenePoseдля Guava,GuavaGltfModelсодержитGuava-equivalent GltfModelи т. д. ( If7283 ) ( I0af60 ) ( If7283 ) ( Ia8515 ) ( I4efdf ) ( I54bbf ) ( I3467a ) ( I82a33 )
Исправлены ошибки
- Обновлено правило Jetpack XR Scenecore
ProGuardдля предотвращенияAbstractMethodErrorдля минифицированных клиентов. ( I91a01 ) - Дополнительные исправления для поддержки минификации Proguard для Jetpack XR
SceneCore( I4f47e ) - Исправлена ошибка, из-за которой
InteractableComponentмог вызывать сбой, еслиhitPositionв HitInfo объектаInputEventмог привести к сбою, еслиhitPositionвозвращаемый системой, был равен null ( I7a695 ). - Значения параметров Config *Mode были переименованы в соответствии с их поведением. ( I6d247 )
- Исправлены проблемы с FOV и
HitTestв тестовом приложенииSceneCore. ( I2c51e ) - Исправлена ошибка в
SpatialCapabilities.hasCapability(), из-за которой она возвращала true, если хотя бы одна из возможностей, переданных с помощью побитового ИЛИ, была истинной, вместо того, чтобы возвращать true только в том случае, если все они были истинными. ( I2cd40 ) -
SurfaceEntity.StereoMode.TOP_BOTTOMобновлен: верхняя карта теперь предназначена для левого глаза, а нижняя — для правого. ( I4ae68 )
Версия 1.0.0-alpha04
7 мая 2025 г.
Выпущены androidx.xr.scenecore:scenecore:1.0.0-alpha04 и androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит следующие коммиты .
Новые функции
- Теперь обработка обратных вызовов будет работать для сущностей панели без встроенных активностей. Для работы обработки обратных вызовов необходимо указать
android:enableOnBackInvokedCallback= "true"в манифесте Android. - Теперь
StereoSurfaceEntityподдерживает воспроизведение MV-HEVC с помощью двух новых значенийStereoMode: MULTIVIEW_LEFT_PRIMARY и MULTIVIEW_RIGHT_PRIMARY. -
PanelEntity.setSizeиPanelEntity.getSizeтеперь возвращают размеры в родительском пространстве. -
Entity.setPose,Entity.getPose,Entity.setScale,Entity.getScale,Entity.setAlphaиEntity.getAlphaтеперь принимают новый параметрrelativeTo, который позволяет получать/устанавливать значения относительно различных пространств. Поддерживаются значения Parent, Activity и Real World, а значение по умолчанию для этого параметра — Parent. - В файл
SessionExt.ktдобавлены методы расширения Spatial Visibility Callback для отслеживания перемещений содержимого сцены внутри или за пределами поля зрения пользователя. - В
SpatialAudioTrackдобавленаsetPointSourceParams, позволяющая обновлять параметры после создания аудиодорожки. - Добавлен новый класс Scene со ссылками на API
Scenecore. Класс Scene будет доступен как свойство расширения класса Session. Функции внутриSessionExtбыли перенесены в класс Scene, поэтому импорт необходимо будет скорректировать; например,SessionExt.getScene(session).addSpatialCapababilitiesChangedListenerвместоSessionExt.addSpatialCapabilitiesChangedListener. - Добавлена функция
ActivityPose.hitTestAsync, позволяющая проводитьhitTestпо виртуальному контенту. - Добавлен новый тип компонента
SpatialPointerComponent, позволяющий клиентам указывать значок, отображаемый для указателя, или отключать его. В настоящее время этот компонент может быть прикреплен только к экземплярамPanelEntity. - Представляем новую фабрику
PanelEntity, которая принимает размеры панели либо в метрах, либо в пикселях. Удалена старая фабрикаPanelEntity, принимавшая два параметра типа Dimension для панели.
Изменения в API
- Снято ограничение
RequiresApi(34)для всех пакетов Jetpack XR. Это ограничение было излишним, поскольку Jetpack XR в настоящее время доступен только на устройствах с уровнем API 34 и выше. ( Iae0f8 ) - Для использования проектов, выпущенных с Kotlin 2.0, требуется KGP 2.0.0 или более поздняя версия ( Idb6b5 ).
- Класс
PermissionHelperбыл удален. -
PanelEntity.getPixelDensityустарел. -
PanelEntity.setPixelDimensionsиPanelEntity.getPixelDimensionудалены и заменены методамиsetSizeInPixelsиgetSizeInPixels. -
Entity.getActivitySpaceAlphaудален. Его можно заменить наEntity.getAlpha(Space.Activity). -
Entity.getWorldSpaceScaleудален. Его можно заменить наEntity.getScale(Space.REAL\_WORLD). - Класс Session в
SceneCoreбыл удалён в пользу класса Session в XR Runtime. -
StereoSurfaceEntityбыл переименован вSurfaceEntity. -
Entity.setSizeиEntity.getSizeбыли удалены, а аналогичные методы были добавлены вPanelEntity. -
PointSourceAttributesбыл переименован вPointSourceParams. -
SpatializerConstants.SOURCE\_TYPE\_BYPASSбыл переименован вSpatializerConstants.SOURCE\_TYPE\_DEFAULT. - Доступ к сущности
PointSourceParamsбыл изменен с общедоступного на внутренний. - Теперь для вызова
AnchorEntity.createтребуется указатьPlaneTrackingModeвSession.configure(). - Теперь для работы API
SpatialUserтребуется указатьHeadTrackingModeвSession.configure(). - Если
ResizableComponentне подключен, вместо сообщений об ошибках будет отображаться информация уровня INFO. - Класс Fov теперь является обычным классом Kotlin.
- Разделите
Entity.kt, чтобы поместить каждый конкретный тип сущности в отдельный файл. - При создании нового
PanelEntityбольшинство элементов View будут переподчинены объектуFrameLayout. Это упрощает использованиеLayoutInspectorс пространственными панелями. - Используемый в данный момент экземпляр
XrExtensionsтеперь зарегистрирован на платформе, в порядке предосторожности, чтобы облегчить отладку приложения.
Исправлены ошибки
- Внесено исправление, предотвращающее сбой, который мог произойти при перемещении
PanelEntityсMovableComponentиAnchorPlacement - Исправлена ошибка, из-за которой
ResizableComponentпредоставлял устаревшие размеры в функции обратного вызоваonResizeStart. - Исправлена ошибка, приводившая к сбою при многократном вызове метода
dispose()классаJxrPlatformAdapterAxr.
Версия 1.0.0-alpha03
26 февраля 2025 г.
androidx.xr.scenecore:scenecore:1.0.0-alpha03 and androidx.xr.scenecore:scenecore-testing:1.0.0-alpha03 are released. Version 1.0.0-alpha03 contains these commits .
Новые функции
- Proguard minification is now supported for Jetpack XR code
Исправлены ошибки
- Additional fixes to support Proguard minification for Jetpack XR SceneCore ( I4f47e )
- Updated Jetpack XR Scenecore
ProGuardrule to preventAbstractMethodErrorfor minified clients. ( I91a01 )
Version 1.0.0-alpha02
12 февраля 2025 г.
androidx.xr.scenecore:scenecore:1.0.0-alpha02 and androidx.xr.scenecore:scenecore-testing:1.0.0-alpha02 are released. Version 1.0.0-alpha02 contains these commits .
Upcoming breaking change affecting apps built before 1.0.0-alpha02
- Factory methods have been moved from the
Sessionclass to a companion method on each respective type:-
Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)has been deleted and replaced withActivityPanelEntity.create(Session, Dimensions, String, Pose) -
Session.createAnchorEntity(Anchor)has been deleted and replaced withAnchorEntity.create(Session, Anchor) -
Session.createAnchorEntity(Dimensions, Int, Int, Duration)has been deleted and replaced withAnchorEntity.create(Session, Dimensions, Int, Int, Duration) -
Session.createEntity(String, Pose)has been deleted and replaced withContentlessEntity.create(Session, String, Pose) -
Session.createExrImageResource(String)has been deleted and replaced withExrImage.create(Session, String) -
Session.createGltfEntity(GltfModel, Pose)has been deleted and replaced withGltfModelEntity.create(Session, GltfModel, Pose) -
Session.createGltfModelResource(String)has been deleted and replaced withGltfModel.create(Session, String) -
Session.createInteractableComponent(Executor, InputEventListener)has been deleted and replaced withInteractableComponent.create(Session, Executor, InputEventListener) -
Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)has been deleted and replaced withMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean) -
Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose)has been deleted and replaced withPanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose) -
Session.createResizableComponent(Dimensions, Dimensions)has been deleted and replaced withResizableComponent.create(Session, Dimensions, Dimensions) -
Session.createStereoSurfaceEntity(Int, Dimensions, Pose)has been deleted and replaced withStereoSurface.create(Session, Int, Dimensions, Pose)
-
- The following deprecated methods were removed:
-
Session.canEmbedActivityPanel(Activity)has been deleted. UsegetSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)instead. -
Session.hasSpatialCapability(Int)has been deleted. It has been replaced in favor of usinggetSpatialCapabilities().hasCapability()as a more compartmentalized way to check for the presence of spatial capabilities sincegetSpatialCapabilities()returns aSpatialCapabilitiesobject. -
Session.requestFullSpaceMode()has been deleted and replaced withSpatialEnvironment.requestFullSpaceMode() -
Session.requestHomeSpaceMode()has been deleted and replaced withSpatialEnvironment.requestHomeSpaceMode()
-
-
Session.setFullSpaceMode(Bundle)andSession.setFullSpaceModeWithEnvironmentInherited(Bundle)have been moved to extension functions. Developer files will need to add the new imports for access:-
import androidx.xr.scenecore.setFullSpaceMode -
import androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
-
-
Session.setPreferredAspectRatio(Activity, Float)has been moved to an extension function. Developer files will need to add the new import for access:-
import androidx.xr.scenecore.setPreferredAspectRatio
-
-
Session.getEntitiesOfType(Class<out T>)andSession.getEntityForRtEntity(RtEntity)have been moved to extension functions. Developer files will need to add the new imports for access:-
import androidx.xr.scenecore.getEntitiesOfType -
import androidx.xr.scenecore.getEntityForRtEntity
-
-
Session.unpersistAnchor(Anchor)has been deleted -
Session.createPersistedAnchorEntity(UUID)has been deleted
Известные проблемы
-
PanelEntity.setCornerRadius()andActivityPanelEntity.setCornerRadius()may not take effect until the panel is next moved, this can be mitigated by moving the panel to its current position - When
BoundsChangedis called on theActivitySpace, someActivityPoses may not have been correctly updated. It will be updated on the followingOnSpaceUpdatedcall on theActivitySpace
Breaking & behavioral changes
-
PanelEntityandActivityPanelEntitywill have a default corner radius of 32dp or smaller if the panel has a width or height smaller than 32dp
New APIs and capabilities
- Introduces
StereoSurface.CanvasShape, which allows for the creation ofSphericalandHemisphericalcanvases for rendering immersive media. -
StereoSurfaceEntity.create()now accepts aCanvasShapeparameter. (This parameter is currently ignored, but will be used in a future release) -
StereoSurfaceEntity.create()no longer takes aDimensionsparameter. Applications should control the size of the canvas through setting theCanvasShape -
StereoSurfaceEntityhas aCanvasShapemember which can be set dynamically. -
StereoSurfaceEntity.dimensionsis now a read-only property; applications should set theCanvasShapeto change dimensions. -
StereoSurfaceEntitynow allows theStereoModeto be re-set after construction.
Other changes
- Reduced compile-time minSDK to 24. All Jetpack XR APIs continue to require API 34 at runtime.
-
SceneCore's Session factory (Session.create) no longer launches an intent to acquire theSCENE_UNDERSTANDINGpermission. Instead, the client application must explicitly request the permissions from the user, before attempting to create the anchors. Anchor creation will fail if the permission is not granted by the user.
Исправлены ошибки
-
getActivitySpacePose()has been fixed to account for theActivitySpacescale by returning translation values in scaled meters rather than always returning non-scaled meters.transformPoseTonow also uses the right units to compute coordinate changes when theActivitySpaceis involved in the source or destination. - The skybox will now be set to an all-black skybox whenever a null skybox preference is passed using
setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)). To revert to the system default skybox and geometry, usesetSpatialEnvironmentPreference(null).
Version 1.0.0-alpha01
12 декабря 2024 г.
androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 is released.
Features of Initial Release Initial developer release of Jetpack SceneCore, a 3D scene graph library for creating and manipulating immersive scenes and environments. This library allows you to place and arrange 3D models and content panels relative to each other and your virtual or real-world environments.
- SpatialEnvironment : Create fully immersive experiences with a skybox image and/or 3D model geometry as the backdrop for your XR scene of your environment. Or enable passthrough, so your virtual scene can integrate with the user's real-world environment.
- PanelEntity : Add 2D content to your 3D scenes by embedding standard Android layouts and Activities into spatialized panels that can float or be anchored to real-world surfaces.
- GltfModelEntity : Place, animate, and interact with 3D models in your scene. SceneCore supports the glTF file format for ease of integration with existing models.
- SpatialAudio : Add ambient and point audio sources into your 3D scene for fully immersive, spatialized sound.
- StereoSurfaceEntity : SceneCore supports left/right eye routing of content rendered onto an Android Surface. This can be used to render stereoscopic content in a side-by-side or top-bottom format, such as stereo photos, 3D video, or other dynamically rendered UIs. Applications should use MediaPlayer or ExoPlayer for video decoding.
- Component System: SceneCore offers a robust and flexible component system for adding capabilities to your XR content, including affordances for users to move, resize, and interact with models and panels.
- Anchor : With passthrough enabled, you can attach panels and models to actual surfaces, giving users seamless integration of virtual content in their real-world environment.
- User Pose: Access the user's location in the virtual scene, to orient your content around the user's position.
- SpatialCapabilities : Build fully adaptive apps that take advantage of spatialized capabilities when available, such as 3D positioning of UI content. Not only that, but your app can monitor for changes to capabilities while the app is executing, to modify the experience based on how the user is using their Android XR device.
Известные проблемы
- Currently a minSDK of 30 is required to use Jetpack SceneCore. As a workaround add the following manifest entry
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>to be able to build and run with a minSDK of 23. - Session can become invalid in various situations that automatically recreate the Activity, including resizing a main panel, connecting peripherals, and changing between light and dark mode. If you encounter session invalidation issues, workarounds include making you main panel non-resizable, using a dynamic panel entity, disabling activity recreation for specific config changes or disabling light/dark mode theme changes.
- Movable and Resizable components are not supported on GltfEntity.
- Entity.getSize() is not supported on GltfEntity.
- Jetpack XR apps required to request
android.permission.SCENE_UNDERSTANDINGpermission in AndroidManifest. - Creating a session is only supported on an Android XR device. At this time, if you create a Session and try to use it on a non Android XR device, you'll get a RuntimeException.
- Setting the skybox to null via `SpatialEnvironment.setSpatialEnvironmentPreference() does not result in a solid black skybox as documented. It may result in the system default skybox or no change to the current skybox.
- SceneCore clients should add
implementation(“com.google.guava:listenablefuture-1.0”)to their Gradle configuration for their app's dependencies. In a future release, scenecore will include this library as anapidependency so clients will not need to explicitly declare it. - SceneCore erroneously includes
com.google.guava:guava-31.1-androidandcom.google.protobuf:protobuf-javaliteas transitive dependencies. If this results in duplicate class errors in your build, these two dependencies can be safely excluded. - If your app uses SceneCore and enables ProGuard, it will crash when you create a Session. As a workaround, disable ProGuard. See this guide for more information on how to enable ProGuard.