Jetpack SceneCore
| آخر تحديث | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 7 أكتوبر 2026 | - | 1.0.0-rc02 | - | - |
تحديد الاعتماديات
لإضافة اعتمادية على XR SceneCore، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-rc02" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-rc02" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-rc02") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-rc02") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.
الملاحظات
تساعدنا ملاحظاتك في تحسين أداء Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Issue Tracker.
الإصدار 1.0
الإصدار 1.0.0-rc02
7 أكتوبر 2026
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-rc02. يتضمّن الإصدار 1.0.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة محتملة لتسرّب الذاكرة من خلال إزالة
perceptionRuntimeCacheفيSessionExtوإعادة تصميمها لاستردادPerceptionRuntimeمباشرةً من مثيلSession. (Ie35b1) - تم إصلاح مشكلة محتملة لتسرُّب السياق من خلال استخدام
applicationContextلمقابضOpenXRالأصلية لضمان عدم احتفاظ وقت التشغيل الأصلي بمراجع لسياقActivity. (Ie35b1) - تم إصلاح حالات التنافس في
XrInstanceManagerمن خلال توفير مزامنة مناسبة وقفل تهيئة. (Ie35b1) - تم إصلاح
ReferenceCleanerلتوفير إمكانية إلغاء تسجيل إجراءات التنظيف، وتم التأكّد من تنفيذ إجراءات التنظيفEntityبشكل صريح أثناءdispose()، ما يمنع التنفيذ المكرّر عند جمع البيانات المُهمَلة. (Ie35b1) - تم إصلاح مشكلة تسريب الذاكرة في
Sceneمن خلال إزالةsceneCacheفيSessionExtوإعادة تصميمSceneلجلب المثيل مباشرةً منsessionConnectors. (Ie35b1)
الإصدار 1.0.0-rc01
9 سبتمبر 2026
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مكتبة
xr:scenecore:scenecore-openxr. (Ic49f2) - تمت إزالة العديد من واجهات برمجة التطبيقات المتوقّفة نهائيًا قبل الإصدار الثابت 1.0.0.
إصلاح الأخطاء
- تم إصلاح خطأ تسريب الذاكرة الذي كان يؤدي إلى احتفاظ النظام بمرجع النشاط عند إيقافه. (I6dcd7)
التغييرات في السلوك
- تمت إزالة ناتج logcat من SceneCore. (I10c3c)
الإصدار 1.0.0-beta02
12 أغسطس 2026
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- ستعرض
toMoveEvent()القيمةnullإذا تم جمع البيانات غير الضرورية من العنصر الرئيسي. (Ia7a1b)
الإصدار 1.0.0-beta01
15 يوليو 2026
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تصنيف واجهتَي برمجة التطبيقات
GltfAnimationوSpatialGltfModelAnimationعلى أنّهما تجريبيتان. تم تحويل بعض السمات إلى دوال جلب. (I8d689، b/524771027) - تمت إزالة طريقة المصنع العامة
MovableComponent.createTrackingMovable. (I00912، b/477169015) - تم تحويل Session.create إلى دالة تعليق. (I5d27f)
- يوسّع كل من
ActivitySpaceوAnchorSpaceالآن فئةSpaceEntityمشترَكة تحتوي على سلوك مشترك للعناصر التي يتحكّم النظام في مواضعها (I506ec، b/513619219). - تمت إعادة تسمية
AnchorEntityإلىAnchorSpace(Ifa95e، b/513619219) - توفّر واجهة برمجة تطبيقات اختبارية عامة
SoundEffectPoolComponentTester. (I87df7، b/498104417) - تمت إضافة المَعلمة الاختيارية
cornerRadiusإلى الدالة الإنشائيةSurfaceEntity.Shape.Quadوإتاحة السمةcornerRadiusللجميع. يمكن للمطوّرين الآن تحديد نصف قطر الزاوية عند إنشاء شكل Quad لعرض لوحاتSurfaceEntityذات الزوايا المستديرة، والاستعلام عن نصف قطر أشكال Quad الحالية. (Ia7809، b/474681085) - توفّر هذه السمة عمليات تحميل زائدة لواجهة برمجة التطبيقات العامة للاختبار
SpatialAudioTrackBuilderTesterوSpatialAudioTrackTesterوSceneCoreTestRule.getTester. (I378c6، b/496333938) - أضِف عمليات إلغاء متخصّصة للسمة
toString()لعدد من أنواع ARCore. تهدف هذه الأنواع إلى تقديم معلومات إضافية للمطوّرين لأغراض تصحيح الأخطاء، ولا يُفترض استخدامها في التطبيقات المنشورة أو التي سيتم شحنها.
الإصدار 1.0.0-alpha16
17 يونيو 2026
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha16. يتضمّن الإصدار 1.0.0-alpha16 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة عمليات تحميل زائدة للقيم
addVertexDataوsetIndexDataوaddSubsetإلىCustomMesh.BuilderFromMeshDataوCustomMesh.BuilderFromMeshBuffer. تسمح عمليات التحميل الزائد هذه للمطوّرين بتمرير البيانات الأولية والمَعلمات مباشرةً (مثلByteBufferوoffsetوsizeوtopologyوindexOffsetوindexCount) بدون الحاجة إلى تضمينها في عناصر وسيطة مثلByteBufferRegionأوMeshSubset. (I84d5c) - تمت إعادة تسمية
Scene.requestFullSpaceMode()وScene.requestHomeSpaceMode()إلىrequestFullSpace()وrequestHomeSpace()على التوالي. تم أيضًا تعديل الطرق والمستندات الأخرى التي تشير إلى "وضع المساحة المشتركة" و "وضع المساحة الكاملة" بشكل مماثل. (I45751) - توفير واجهة برمجة تطبيقات عامة للاختبار
PanelEntityTesterوMainPanelEntityTester(I961e4) - جارٍ إضافة الموقع
pointSourceParamsإلى الحسابSoundEffectPoolComponent(I4a750) - توفير واجهة برمجة تطبيقات اختبار عامة
MovableComponentTester(I0c972) - توفّر واجهة برمجة تطبيقات اختبارية عامة
PointerCaptureComponentTester(Ic0d4f) - توفير واجهة برمجة تطبيقات اختبارية عامة
ActivityPanelEntityTester(I837c4) - توفير واجهة برمجة تطبيقات اختبارية عامة
ResizableComponentTester(I0a3a4) - توفير واجهة برمجة تطبيقات اختبار عامة
BoundsComponentTester.(Iefd53) - توفير واجهة برمجة تطبيقات اختبارية عامة
SpatialMediaPlayerTester(Ia3e09) - توفّر واجهة برمجة تطبيقات اختبار عام
SpatialEnvironmentTester(Icf60f) - توفّر واجهة برمجة التطبيقات العامة للاختبار
GltfModelTesterوSceneCoreTestRule.getGltfModelTester. (I33fcb) - توفّر واجهة برمجة تطبيقات اختبارية عامة
InteractableComponentTester. (Ia7096) - توفّر واجهة برمجة تطبيقات اختبارية عامة
SurfaceEntityTester. (Ic0740) - توفّر واجهة برمجة تطبيقات اختبارية عامة
GltfModelEntityTesterوTestGltfModelNodeوTestGltfAnimation. (I72c4d) - توفّر واجهة برمجة التطبيقات العامة للاختبار
SceneTesterوSceneCoreTestRule.sceneTester. (Ib4ec5) - توفّر واجهة برمجة التطبيقات العامة للاختبار
PerceptionSpaceTesterوSceneCoreTestRule.perceptionSpaceTester. (Icf739) - توفّر واجهة برمجة تطبيقات اختبارية عامة
MeshEntityTester. (I63801) - توفّر هذه السمة عمليات تحميل زائدة لواجهة برمجة التطبيقات
ImageBasedLightingAssetTesterوSceneCoreTestRule.getTesterالمخصّصة للاختبار العلني. (I57ec4) - توفير واجهة برمجة تطبيقات اختبارية عامة
TextureTester(Ia865b) - توفير واجهة برمجة تطبيقات اختبار عامة
PositionalAudioComponentTester(Icd96e) - توفّر واجهة برمجة تطبيقات اختبارية عامة
SpatialSoundPoolTester(Ia3531) - توفير واجهة برمجة تطبيقات اختبارية عامة
SoundEffectPoolTester(If349a) - توفّر واجهة برمجة التطبيقات العامة للاختبار
ActivitySpaceTesterوSceneCoreTestRule.activitySpaceTester. (I2d5c2) - توفير واجهة برمجة تطبيقات عامة للاختبار
SpatialWindowTester(I41837) - توفير واجهة برمجة تطبيقات اختبارية عامة
AnchorEntityTester(I68404) - توفّر واجهة برمجة التطبيقات العامة للاختبار
SceneCoreTestRule. (Ic72d3) - تمت إضافة الفئة
PixelDensityوإتاحتها من خلالScene#virtualPixelDensityلتوفير نسبة وحدات البكسل لكل متر المستندة إلى الأجهزة من أجل ربط الأبعاد المادية بدقة فيActivitySpace. (I0e3ac) - تمت إضافة واجهات برمجة تطبيقات عامة لإنشاء "الشبكات المخصّصة" وعرضها. (I7ad2f)
- تم تعديل واجهة برمجة التطبيقات
VertexLayoutلاستخدام قائمةVertexBufferLayout، حيث يصف كلVertexBufferLayoutالسمات ضمن مخزن مؤقت واحد للرؤوس. ويتيح ذلك ترتيبات أكثر مرونة لبيانات الرؤوس، بما في ذلك السمات المتداخلة مع خطوات وإزاحات مخصّصة. (Ic426b) - توفّر هذه السمة
MovableComponent.createTrackingMovableلتحويل عنصر قابل للتتبّع في ARCore إلى وضعية نسبةً إلى "مساحة النشاط". (I12249) - تم تعديل القيمة التلقائية للسمة "الوالد" في
Entity.createإلى "فارغ". (Ic3145) - تم تعديل
Entityليصبح صنفًا بدلاً من واجهة، وهو الآن الصنف الأساسي لجميع أنواع الكيانات. في إطار هذا التغيير، تمت إزالةBaseEntity. (I7fbc9) - تستخدم الفئات
GltfModelوExrImageوImageBasedLightingAssetالآنAutoCloseableللسماح بإدارة الموارد الاصطلاحية باستخدام كتلةuseفي Kotlin. (I1ac79) - تم تقديم الفئة
ImageBasedLightingAssetلاستبدالExrImageفي تحديد إضاءة البيئة المكانية. تم إيقافExrImageنهائيًا وإزالته من واجهة برمجة التطبيقات العامة. تم تعديلSpatialEnvironmentPreferenceلاستخدامImageBasedLightingAsset. (I6c92a) - تمت إعادة تسمية المَعلمة
skyboxفيSpatialEnvironmentإلىimageBasedLightingAssetلتعكس الغرض منها بشكل أفضل، وتم توضيح أنّه يجب تضمين نصوص skybox المرئية في مَعلمة البنية الهندسية. (I24d4a) - تستخدم الكيانات المكانية الآن كثافة ثابتة للجهاز في عمليات احتساب البكسل إلى المتر على المستويَين 1 و2 من Spatial API، ما يضمن حجمًا ثابتًا بغض النظر عن التغييرات في كثافة العرض على النظام. (I37051)
الإصدار 1.0.0-alpha15
19 مايو 2026
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha15. يتضمّن الإصدار 1.0.0-alpha15 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت الآن إزالة
Entity.dispose()باعتبارها واجهة برمجة تطبيقات متاحة للجميع. بدلاً من استدعاءdispose()في مثيلات Entity، يمكن للتطبيقات جعل المثيلات قابلة للتنظيف من خلال ضبطparentعلىnullومحو أي مراجع قوية لتلك المثيلات. (I396c9) - تم حذف طرق الدفع
set/clearOnLoadCompleteListenerالخاصة بحساب "SoundEffectPool". يمكنك استخدامadd/removeLoadCompleteListenerكبديل. (Iae78d) - تم استبدال
set/clearSpatialVisibilityChangedListenerللمشهد بـadd/removeSpatialVisibilityChangedListener. (I67dff) - تمت إعادة تسمية جميع طرق SceneCore
add/removeOnFooListenerإلىadd/removeFooListener، وتمت إزالةOnمن الاسم. (Ibe50b) - تم استبدال طريقتَي
AnchorEntity.setOnOriginChangedListenerوAnchorEntity.setOnStateChangedListenerبطرقadd/removeFooListener، وذلك لإتاحة استخدام ميزة "الاستماع إلى الموسيقى مع الآخرين" من قِبل عدة مستخدمين في الوقت نفسه. (I13749) - تمت إعادة تسمية "
AnchorEntity.State.TIMEDOUT" إلى "State.TIMED_OUT". (Id2b8d) - تمت إعادة تصميم Component API لتحسين مستوى الأمان وقابلية التوسيع. أصبح
Componentالآن فئة مجرّدة. أصبحت الطريقتانonAttach()وonDetach()الآنprotectedلمنع إجراء مكالمات مباشرة. يُرجى استخدامEntity.addComponent()وEntity.removeComponent()لإدارة مراحل نشاط المكوّنات. (Id04e8) - تم نقل الثوابت
PlaneSemanticTypePlaneOrientationفي SceneCore من Ints إلى أنواع مخصّصة. ستتم إزالة الثوابتANY، ويجب أن يدرج العملاء جميع الثوابت المطلوبة بشكل صريح بدلاً من ذلك، أو يستخدموا ثوابت المجموعة الجديدة.ALLغير القابلة للتغيير. تقبل الآن طريقة المصنعAnchorEntityمجموعة من هذه الأنواع بدلاً من قيمة واحدة. (Ib1033) - تمت إضافة إمكانية استخدام الرسوم المتحركة الهيكلية (التغليف) إلى واجهة برمجة التطبيقات التجريبية Custom Mesh API. يمكن للمطوّرين الآن تحريك الشبكات المخصّصة من خلال تحديد
boneCountعند إنشاءMeshEntityوتعديل الحركة في الوقت الفعلي باستخدامMeshEntity.setBoneTransforms(). (Id8ba2، b/496692490) - تم طرح واجهة برمجة التطبيقات التجريبية
CustomMesh. يمكن للمطوّرين الآن إنشاء أشكال هندسية ثلاثية الأبعاد وعرضها آليًا في مشاهد باستخدام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منAnchorفي ARCore (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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم نقل
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()". تم إيقاف السمة "الوضعية" نهائيًا. (I329b4، b/493383490) - تمت إعادة تسمية قيم التعداد
HandJointType. (Ifbc83، b/482670596) - عرض
Component.onAttachوonDetachكواجهة برمجة تطبيقات عامة للسماح بتنفيذComponentمخصّص. (I0ca1f) - إضافة مكوّنات الصوت المكاني (I39ddd، b/489421980، b/436642086، b/436642499)
- إزالة الكيان من
PointSourceParamsبدلاً من ذلك، سيتم استخدام الكيان مباشرةً مع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 يتضمّن وظائف العنصر الأساسية فقط، استدعِEntity.createالذي سيعرض واجهة العنصر. (I4c450، b/473867483) - تمت إضافة واجهة برمجة التطبيقات
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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة علامة
unscaledGravityAlignedActivitySpaceمنSession.create. يتم الآن عرضActivitySpaceدائمًا بدون تغيير حجمه وبمحاذاة الجاذبية. (If6f11، b/458173423) - تمت إزالة الدالتَين المتوقّفتَين نهائيًا
setMaterialOverrideوclearMaterialOverrideمنGltfModelEntity، ويتم الآن استدعاؤهما فيGltfModelNodeالفردي. (I2e5d2) - تمت إضافة
transformPixelCoordinatesToLocalPositionوtransformNormalizedCoordinatesToLocalPositionإلىPanelEntityوإزالة الطرق التجريبية المكافئة التي كانت تعرض وضعيات بدلاً من مواضعVector3. (Ib6960، b/460123106، b/458333591) - تمت إضافة واجهات برمجة التطبيقات
GltfAnimationللتحكّم في صور glTF المتحركة فيSceneCore. (I2c172 وb/466065486 وb/465819070 وb/465818617) - تمت إعادة تسمية
ScenePose.activitySpacePoseإلىScenePose.poseInActivitySpace(I8f175، b/427822261) - إضافة تنفيذ وقت التشغيل المتوقّع في Scenecore (I9c4ab، b/476440158)
- عند تغيير حجم عنصر اللوحة الرئيسية، قد يعيد ضبط موضعه إلى نقطة الأصل
ActivitySpace. لا يتوفّر حلّ بديل سوى إعادة ضبط موضع اللوحة يدويًا أو آليًا إلى موضعها الأصلي. سيتم إصلاح هذا الخطأ في إصدار مستقبلي. (b/489427007). - في بعض الحالات، قد لا يظهر عنصر واجهة المستخدم الخاص بـ
MovableComponentلـSurfaceEntityوأنواع الكيانات الأخرى غير "اللوحة". سيؤدي ضبط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والإصدارات اللاحقة. يجب تحديث التطبيقات المتأثرة إلى أحدث إصداراتها.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية "
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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية
PerceivedResolutionResult.InvalidCameraViewإلىPerceivedResolutionResult.InvalidRenderViewpointلأنّ واجهات برمجة التطبيقاتgetPerceivedResolutionتعتمد الآن على واجهة برمجة التطبيقاتRenderViewpointفي ARCore بدلاً منCameraViewScenePose. يعكس هذا الاسم بشكل أفضل عملية التنفيذ الجديدة. (I8c967، b/446989745، b/419311998) - تتلقّى الطريقتان
PanelEntity/SurfaceEntity.getPerceivedResolutionالآنRenderViewpointيقدّمه المطوّر كوسيطة. في السابق، كان وقت التشغيل يختار بشكل عشوائيRenderViewpointالمستخدَم في احتساب الدقة المرئية. (I8c967، b/446989745، b/419311998) - تمت إزالة إذنَي
SpatialUserوScenePose.HeadوScenePose.CameraView. تتوفّر وظائف واجهات برمجة التطبيقات هذه في واجهتَي برمجة التطبيقاتArDeviceوRenderViewpointضمن ARCore for Jetpack XR. للحصول علىScenePoseيتوافق مع رأس المستخدم أو عينه اليسرى أو اليمنى، يمكن للمطوّرين استخدامPerceptionSpace.getScenePoseFromPerceptionPoseمع الوضع المناسب الذي تم الحصول عليه باستخدام واجهات برمجة تطبيقات ARCore. (I2f69c، b/446989745)
الإصدار 1.0.0-alpha10
3 ديسمبر 2025
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمّت إضافة "
transformPixelCoordinatesToPose" و"transformNormalizedCoordinatesToPose" إلى "PanelEntity" (I462b3) - تمت إضافة فئة مساعدة، Utils، إلى
SceneCoreRuntime استنادًا إلى المنطق فيSceneCore(I570b9)
إصلاح الأخطاء
- تم إصلاح عُطل محتمل يمكن أن يحدث عند إيقاف الجلسة وتلقّي
SpatialModeChangeEvent(If44e8) - تم إصلاح خطأ كان يمكن أن يؤدي إلى ظهور
IllegalStateExceptionعند مغادرة نشاط أو إعادة الدخول إليه. (Ibff1c)
الإصدار 1.0.0-alpha09
19 نوفمبر 2025
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
الميزات الجديدة
- تضيف هذه السمة واجهة برمجة تطبيقات لاسترداد
ScenePoseيمثّل تركيبة وضعية مصدر مساحة الإدراك ووضعية بالنسبة إلى مصدر مساحة الإدراك. (I5b50a) - تمت إضافة الدالة
getGravityAlignedPose. يتجاهل الوضع المحاذي للجاذبية الميل والانحراف في الدوران. (I5ae21) - تم تغيير أنواع الثوابت
AnchorEntity.Stateمن أعداد صحيحة إلى أنواع فرعية من الحالة. (Ib0c49) - تمت إضافة
getChildren()إلى واجهة Entity. تم تعديل مراحل النشاط في MainPanelEntity. (Ia69d6)
تغييرات واجهة برمجة التطبيقات
- تم تغيير أنواع الثوابت
PointerCaptureComponent.PointerCaptureStateمن Ints إلى الأنواع الفرعيةPointerCaptureState. (Ic888a) - أصبح
Scene.spatialCapabilitiesالآن من النوعSet<SpatialCapability>بدلاً من حقل Int. تمت إعادة تسمية الثوابتSpatialCapability. (I9c109) - تمت إعادة تسمية أنواع الثوابت
SurfaceEntityوتغييرها من أعداد صحيحة إلى أنواع فرعية منSurfaceEntity. (I419ed) - تمت إعادة تسمية أنواع الثوابت
SpatializerConstantوتغييرها من أعداد صحيحة إلى أنواع فرعية منSpatializerConstant. (Ia0e18) - تمت إعادة تسمية أنواع الثوابت
TextureSamplerوتغييرها من أعداد صحيحة إلى أنواع فرعية منTextureSampler. (I44078) - تم تغيير أنواع الثوابت
SpatialVisibilityمن Ints إلى الأنواع الفرعيةSpatialVisibility. (I70739) - تمت إعادة تسمية الأنواع الثابتة
ResizeEvent.ResizeStateوتغييرها من أعداد صحيحة إلى أنواع فرعيةResizeState. (I384d5) - تمت إعادة تسمية أنواع الثوابت
InputEventوتغييرها من Ints إلى أنواع موروثة من النوع المحيط بكل منها. (I82817) - تم تغيير أنواع الثوابت
GltfModelEntity.AnimationStateمن Ints إلى الأنواع الفرعيةAnimationState. (I24f4e) - تمت إعادة تسمية أنواع الثوابت
AlphaModeوتغييرها من أعداد صحيحة إلى أنواع فرعية منAlphaMode. (I27b56) - تم تغيير أنواع الثوابت
Spaceمن أعداد صحيحة إلى أنواع فرعية من المساحة. (I9255b) - تعرِض الدالة
ScenePose.hitTestوالطُرق ذات الصلة الآنnullإذا لم يتم العثور على أي تقاطع، بدلاً منHitTestResultمع قيمة فارغةhitPosition. لم يعُدHitTestResult.hitPositionيقبل القيمة الخالية. (I1400a) - تم تغيير مراجع
ActivityPoseإلىScenePose. (I7fe43)
الإصدار 1.0.0-alpha08
22 أكتوبر 2025
تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تغيير اسم
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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية
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الخاصة بالمشهد في المتغيرkeyEntity. سيؤدي ضبطkeyEntityعلى كيان غير قابل للنقل، مثلAnchorEntity، إلى طرحIllegalArgumentExceptionبدلاً من عرض القيمة المنطقية "خطأ". (I62080، b/428721695، b/422215745) - تم استبدال المتغيّر
SpatialModeChangeListenerالخاص بالمشهد بـ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_. - تمت إضافة البادئة "
SUPER_SAMPLING_" من قِبل "SurfaceEntity.SuperSampling.{$values}" - تمت إضافة البادئة "
STEREO_MODE_" من قِبل "SurfaceEntity.StereoMode.{values}" - تمت إعادة تسمية
SurfaceEntity.ContentColorMetadata.maxCLLmaxContentLightLevel(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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إزالة القيود عن واجهات برمجة التطبيقات
SceneCoreوBaseEntityوBaseScenePose(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 هذه التعديلات.
الميزات الجديدة
- تمت إضافة واجهة برمجة التطبيقات Perceived Resolution API إلى "كيانات اللوحة" و
SurfaceEntities. (I118f6) PerceivedResolutionتمت إضافة طرق معاودة الاتصال إلى Scene.kt لمراقبة الدقة المدرَكة للّوحة الرئيسية للنشاط في "خدمة إدارة أمان الأجهزة" (HSM). (I58084)SurfaceEntity- تمت إضافة إمكانية طلب أخذ عينات فائقة عند إنشاء التطبيق. تسمح هذه السمة للتطبيقات باستخدام فلتر أخذ العينات الفائق لتنعيم الحواف. (I06913)- تمت إضافة السمة
recommendedContentBoxInFullSpaceإلىActivitySpace. تعرض هذه السمة مربّعًا مقترَحًا لوضع المحتوى فيه عند استخدام "وضع المساحة الكاملة". (I4cd6f) - تم توفير أداة إنشاء محمّلة بشكل زائد لمعدِّل قابل للنقل يتيح التثبيت. (Ic0c70)
تغييرات واجهة برمجة التطبيقات
تم إجراء تغييرات شاملة على واجهة برمجة التطبيقات SceneCore لهذا الإصدار. تمت إعادة تسمية العديد من الفئات و/أو نقلها إلى وحدات مختلفة، وتم استبدال معظم طرق getter/setter بخصائص Kotlin. مع أنّنا نتوقّع إجراء تغييرات غير متوافقة مع الإصدارات السابقة في واجهة برمجة التطبيقات في المستقبل إلى حين إصدار أول إصدار تجريبي، لن تكون هذه التغييرات مزعجة أو عديدة.
- تمت إعادة تسمية و/أو نقل الفئات والواجهات التالية:
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إلى "المشهد"، مثلاً استخدِمsession.scene.requestFullSpaceMode()بدلاً منsession.scene.spatialEnvironment.requestFullSpaceMode(). يتضمّن كل منaddOnPassthroughOpacityChangedListenerوaddOnSpatialEnvironmentChangedListenerالآن عمليات إلغاء تقبل عمليات تنفيذ اختيارية. (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. لم يعُد يقبل القيم الفارغة. بدلاً من ذلك، يتم استخدامSpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCEللإشارة إلى عدم توفّر أي إعداد مفضّل للشفافية. (I40107) - تم تعديل المَعلمة
windowBoundsPxإلىpixelDimensionsوتغيير نوعها من Rect إلىIntSize2dفي طريقة الإنشاء. (I1926e) - أصبح منشئ
SpatialEnvironmentداخليًا الآن (I75a51) - تم استبدال الفئتين
SpatialPointerIconNoneوSpatialPointerIconCircleبفئتين مصاحبتينSpatialPointerIcon.NONEوSpatialPointerIcon.CIRCLE(I416d2) - لم يعُد الحقل
SpatialPointerIconفيSpatialPointerComponentيقبل القيم الخالية. استخدِمSpatialPointerIcon.DEFAULTبدلاً من القيمة الفارغة للإشارة إلى أنّه يجب استخدام رمز المؤشر التلقائي للنظام. (I416d2) - تم استبدال
androidx.xr.scenecore.AnchorEntity.getState()بسمة للقراءة فقط. تمت إعادة تسمية المَعلمات في الطريقةAnchorEntity.create()لتوضيحها. في طرقAnchorEntityلضبط أدوات معالجة الأحداث وإضافتها، تم نقل أداة معالجة الأحداث إلى الوسيطة الأخيرة لتفعيل تعبيرات lambda اللاحقة. تم استبدال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، وتمت إزالة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بكائن عام يتضمّن قيمًا ثابتة من النوع Int. تقبل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من "سلسلة" إلى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إلى 24 فيandroidx.xr.scenecoreوandroidx.xr.compose. لا تزال حِزم XR تتطلّب المستوى 34 لواجهة برمجة التطبيقات في وقت التشغيل. (I17224) - تمت إزالة القيود المفروضة على
RequiresApi(34)في جميع حِزم Jetpack XR. كان هذا القيد غير ضروري لأنّ Jetpack XR لا يتوفّر حاليًا إلا على الأجهزة التي تعمل بالمستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Iae0f8) - سيحتوي العنصر الرئيسي
SceneCore(xr:scenecore:scenecore) على واجهات برمجة تطبيقات غير متزامنة بنمط Kotlin فقط. يمكن لمطوّري Java الاعتماد على مكتبةxr:scenecore:scenecore-guavaللوصول إلى واجهات برمجة التطبيقات المتوافقة. (If221b) - تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (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التي تم إرجاعها من النظام فارغة (I7a695) - تمت إعادة تسمية قيم *الوضع في ملف الإعداد لتعكس سلوكها. (I6d247)
- تم حلّ المشاكل المتعلّقة بمجال الرؤية و
HitTestفيSceneCoreTestApp. (I2c51e) - تم إصلاح الخطأ في
SpatialCapabilities.hasCapability()الذي كان يعرض القيمة "صحيح" إذا كانت أي من الإمكانات التي تم تمريرها باستخدام OR على مستوى البت صحيحًا بدلاً من عرض القيمة "صحيح" فقط إذا كانت جميعها صحيحة. (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، ما يتيح الحصول على القيم أو ضبطها بالنسبة إلى مساحات مختلفة. القيم المسموح بها هي "مساحات الوالدين" و"النشاط" و"العالم الحقيقي"، والقيمة التلقائية لهذه المَعلمة هي "مساحات الوالدين". - تمت إضافة طرق ملحقة لـ Spatial Visibility Callback إلى
SessionExt.ktلتتبُّع وقت انتقال محتوى المشهد إلى داخل مجال رؤية المستخدم أو خارجه. - تمت إضافة
setPointSourceParamsإلىSpatialAudioTrack، ما يتيح تعديل المَعلمات بعد إنشاء المسار. - تمت إضافة فئة جديدة، Scene، مع مراجع إلى واجهات برمجة التطبيقات
Scenecore. سيكون المشهد متاحًا كسمة إضافية للجلسة. تم نقل الدوال داخلSessionExtإلى "المشهد"، لذا يجب تعديل عمليات الاستيراد، مثلSessionExt.getScene(session)."addSpatialCapababilitiesChangedListener" مقابل "SessionExt.addSpatialCapabilitiesChangedListener". - تمت إضافة
ActivityPose.hitTestAsync، ما يتيح تقديمhitTestضد المحتوى الافتراضي. - تمت إضافة نوع "المكوّن" الجديد
SpatialPointerComponent، ما يتيح للعملاء تحديد الرمز المعروض للمؤشر أو إيقاف الرمز. يمكن حاليًا إرفاق هذا المكوّن بنسخPanelEntityفقط. - نقدّم
PanelEntityجديدًا يأخذ أبعاد اللوحة بالمتر أو بالبكسل. تمت إزالة المصنع القديمPanelEntityالذي يتلقّى مَعلمتَين من نوع السمة للوحة.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة القيود المفروضة على
RequiresApi(34)في جميع حِزم Jetpack XR. كان هذا القيد غير ضروري لأنّ Jetpack XR لا يتوفّر حاليًا إلا على الأجهزة التي تعمل بالمستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Iae0f8) - تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (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(). - تتطلّب واجهات برمجة التطبيقات
SpatialUserالآن ضبطHeadTrackingModeفيSession.configure(). - في حال عدم إرفاق
ResizableComponent، سيتم عرض سجلّ على مستوى INFO بدلاً من سجلّ على مستوى ERROR. - أصبح فئة Fov الآن فئة Kotlin عادية.
- قسِّم
Entity.ktلوضع كل نوع من أنواع العناصر الملموسة في ملف منفصل. - عند إنشاء
PanelEntityجديد، سيتمّ إعادة ربط معظم "طرق العرض" بـFrameLayout. يسهّل ذلك استخدامLayoutInspectorمع "اللوحات المكانية". - تم الآن تسجيل مثيل
XrExtensionsالمستخدَم حاليًا في المنصة بأقصى جهد ممكن للمساعدة في تصحيح أخطاء التطبيق.
إصلاح الأخطاء
- تمت إضافة إصلاح لمنع حدوث تعطُّل قد يحدث عند نقل
PanelEntityيحتوي علىMovableComponentوAnchorPlacement - تم إصلاح مشكلة كانت تتسبّب في أن يقدّم
ResizableComponentأحجامًا قديمة في معاودة الاتصالonResizeStart. - تم إصلاح عُطل كان يحدث عند استدعاء
dispose()فيJxrPlatformAdapterAxrعدة مرات.
الإصدار 1.0.0-alpha03
26 فبراير 2025
تم طرح androidx.xr.scenecore:scenecore:1.0.0-alpha03 وandroidx.xr.scenecore:scenecore-testing:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
الميزات الجديدة
- أصبحت ميزة التصغير باستخدام Proguard متاحة الآن لرمز Jetpack XR
إصلاح الأخطاء
- إصلاحات إضافية لدعم تصغير Proguard في Jetpack XR SceneCore (I4f47e)
- تم تعديل قاعدة Jetpack XR Scenecore
ProGuardلمنعAbstractMethodErrorللعملاء المصغّرين. (I91a01)
الإصدار 1.0.0-alpha02
12 فبراير 2025
تم طرح androidx.xr.scenecore:scenecore:1.0.0-alpha02 وandroidx.xr.scenecore:scenecore-testing:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
تغيير غير متوافق قادم سيؤثر في التطبيقات التي تم إنشاؤها قبل الإصدار 1.0.0-alpha02
- تم نقل طرق الإنشاء من الفئة
Sessionإلى طريقة مصاحبة لكل نوع على حدة:- تم حذف
Session.createActivityPanelEntity(Dimensions, String, Activity, Pose)واستبداله بـActivityPanelEntity.create(Session, Dimensions, String, Pose) - تم حذف
Session.createAnchorEntity(Anchor)واستبداله بـAnchorEntity.create(Session, Anchor) - تم حذف
Session.createAnchorEntity(Dimensions, Int, Int, Duration)واستبداله بـAnchorEntity.create(Session, Dimensions, Int, Int, Duration) - تم حذف
Session.createEntity(String, Pose)واستبداله بـContentlessEntity.create(Session, String, Pose) - تم حذف
Session.createExrImageResource(String)واستبداله بـExrImage.create(Session, String) - تم حذف
Session.createGltfEntity(GltfModel, Pose)واستبداله بـGltfModelEntity.create(Session, GltfModel, Pose) - تم حذف
Session.createGltfModelResource(String)واستبداله بـGltfModel.create(Session, String) - تم حذف
Session.createInteractableComponent(Executor, InputEventListener)واستبداله بـInteractableComponent.create(Session, Executor, InputEventListener) - تم حذف
Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean)واستبداله بـMovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean) - تم حذف
Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose)واستبداله بـPanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose) - تم حذف
Session.createResizableComponent(Dimensions, Dimensions)واستبداله بـResizableComponent.create(Session, Dimensions, Dimensions) - تم حذف
Session.createStereoSurfaceEntity(Int, Dimensions, Pose)واستبداله بـStereoSurface.create(Session, Int, Dimensions, Pose)
- تم حذف
- تمت إزالة الطرق المتوقّفة نهائيًا التالية:
- تم حذف
Session.canEmbedActivityPanel(Activity). يمكنك استخدامgetSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY)كبديل. - تم حذف
Session.hasSpatialCapability(Int). تم استبدالها باستخدامgetSpatialCapabilities().hasCapability()كطريقة أكثر تجزئة للتحقّق من توفّر إمكانات مكانية، لأنّgetSpatialCapabilities()تعرض الكائنSpatialCapabilities. - تم حذف
Session.requestFullSpaceMode()واستبداله بـSpatialEnvironment.requestFullSpaceMode() - تم حذف
Session.requestHomeSpaceMode()واستبداله بـSpatialEnvironment.requestHomeSpaceMode()
- تم حذف
- تم نقل
Session.setFullSpaceMode(Bundle)وSession.setFullSpaceModeWithEnvironmentInherited(Bundle)إلى دوال الإضافة. يجب أن تضيف ملفات المطوّر عمليات الاستيراد الجديدة للحصول على إذن الوصول:import androidx.xr.scenecore.setFullSpaceModeimport androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
- تم نقل
Session.setPreferredAspectRatio(Activity, Float)إلى دالة إضافة. يجب أن تضيف ملفات المطوّر عملية الاستيراد الجديدة للوصول إلى:import androidx.xr.scenecore.setPreferredAspectRatio
- تم نقل
Session.getEntitiesOfType(Class<out T>)وSession.getEntityForRtEntity(RtEntity)إلى دوال الإضافة. يجب أن تضيف ملفات المطوّر عمليات الاستيراد الجديدة للحصول على إذن الوصول:import androidx.xr.scenecore.getEntitiesOfTypeimport androidx.xr.scenecore.getEntityForRtEntity
- تم حذف
Session.unpersistAnchor(Anchor). - تم حذف
Session.createPersistedAnchorEntity(UUID).
المشاكل المعروفة
- قد لا يصبح
PanelEntity.setCornerRadius()وActivityPanelEntity.setCornerRadius()ساريَين إلا عند نقل اللوحة في المرة التالية، ويمكن التخفيف من ذلك عن طريق نقل اللوحة إلى موضعها الحالي. - عند استدعاء
BoundsChangedعلىActivitySpace، قد لا يتم تعديل بعضActivityPoseبشكل صحيح. سيتم تعديلها في مكالمةOnSpaceUpdatedالتالية في ActivitySpace
التغييرات التي قد تؤدي إلى أعطال والتغييرات السلوكية
- سيكون لكل من
PanelEntityوActivityPanelEntityنصف قطر تلقائي للزاوية يبلغ 32 بكسل غير مرتبط بالكثافة أو أقل إذا كان عرض اللوحة أو ارتفاعها أقل من 32 بكسل غير مرتبط بالكثافة.
واجهات برمجة التطبيقات والإمكانات الجديدة
- يقدّم
StereoSurface.CanvasShape، ما يتيح إنشاء لوحات عرضSphericalوHemisphericalلعرض الوسائط الغامرة. - تقبل
StereoSurfaceEntity.create()الآن المَعلمةCanvasShape. (يتم تجاهل هذه المَعلمة حاليًا، ولكن سيتم استخدامها في إصدار مستقبلي) - لم تعُد
StereoSurfaceEntity.create()تقبل المَعلمةDimensions. يجب أن تتحكّم التطبيقات في حجم لوحة الرسم من خلال ضبطCanvasShape - يحتوي
StereoSurfaceEntityعلى عنصرCanvasShapeيمكن ضبطه ديناميكيًا. - أصبحت
StereoSurfaceEntity.dimensionsسمة للقراءة فقط، ويجب أن تضبط التطبيقاتCanvasShapeلتغيير الأبعاد. - تسمح السمة
StereoSurfaceEntityالآن بإعادة ضبطStereoModeبعد الإنشاء.
التغييرات الأخرى
- تم خفض الحد الأدنى لـ minSDK في وقت التجميع إلى 24. ستظل جميع واجهات برمجة تطبيقات Jetpack XR تتطلّب المستوى 34 لواجهة برمجة التطبيقات في وقت التشغيل.
- لم يعُد مصنع الجلسات (
Session.create) فيSceneCoreيطلق هدفًا للحصول على إذنSCENE_UNDERSTANDING. بدلاً من ذلك، يجب أن يطلب تطبيق العميل الأذونات من المستخدم بشكل صريح قبل محاولة إنشاء نقاط الارتكاز. ستتعذّر عملية إنشاء نقاط الارتكاز إذا لم يمنح المستخدم الإذن.
إصلاح الأخطاء
- تم إصلاح
getActivitySpacePose()لاحتساب مقياسActivitySpaceمن خلال عرض قيم الترجمة بالمترات المعدَّلة بدلاً من عرض المترات غير المعدَّلة دائمًا. يستخدمtransformPoseToالآن أيضًا الوحدات الصحيحة لاحتساب تغييرات الإحداثيات عندما يكونActivitySpaceمتضمّنًا في المصدر أو الوجهة. - سيتم الآن ضبط skybox على skybox أسود بالكامل كلما تم تمرير الإعدادات المفضَّلة لـ skybox بقيمة فارغة باستخدام
setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)). للتراجع إلى إعدادات skybox والهندسة التلقائية للنظام، استخدِمsetSpatialEnvironmentPreference(null).
الإصدار 1.0.0-alpha01
12 ديسمبر 2024
تم طرح androidx.xr.scenecore:scenecore-* 1.0.0-alpha01.
ميزات الإصدار الأوّلي الإصدار الأوّلي من Jetpack SceneCore للمطوّرين، وهي مكتبة رسومات بيانية للمشاهد الثلاثية الأبعاد تُستخدَم لإنشاء المشاهد والبيئات الغامرة ومعالجتها. تتيح لك هذه المكتبة وضع نماذج ثلاثية الأبعاد ولوحات المحتوى وترتيبها بالنسبة إلى بعضها البعض وإلى بيئاتك الافتراضية أو الواقعية.
- SpatialEnvironment: يمكنك إنشاء تجارب غامرة بالكامل باستخدام صورة skybox و/أو هندسة نموذج ثلاثي الأبعاد كخلفية لمشهد الواقع الممتد في بيئتك. يمكنك أيضًا تفعيل ميزة "الرؤية من خلال سماعة الرأس" لدمج المشهد الافتراضي مع محيط المستخدم في العالم الحقيقي.
- PanelEntity: يمكنك إضافة محتوى ثنائي الأبعاد إلى مشاهدك الثلاثية الأبعاد من خلال تضمين تصميمات وأنشطة Android العادية في لوحات مكانية يمكن أن تطفو أو يتم تثبيتها على أسطح في العالم الحقيقي.
- GltfModelEntity: يمكنك وضع تصاميم ثلاثية الأبعاد وتحريكها والتفاعل معها في المشهد. تتوافق SceneCore مع تنسيق ملف glTF لتسهيل الدمج مع التصاميم الحالية.
- SpatialAudio: يمكنك إضافة مصادر صوتية محيطة وموضعية إلى المشهد الثلاثي الأبعاد للحصول على صوت مكاني غامر تمامًا.
- StereoSurfaceEntity: تتيح SceneCore توجيه المحتوى المعروض على مساحة عرض Android إلى العين اليسرى أو اليمنى. يمكن استخدام هذه السمة لعرض محتوى مجسّم بتنسيق جنبًا إلى جنب أو من أعلى إلى أسفل، مثل الصور المجسّمة أو الفيديو الثلاثي الأبعاد أو واجهات المستخدم الأخرى التي يتم عرضها بشكل ديناميكي. يجب أن تستخدم التطبيقات MediaPlayer أو ExoPlayer لفك ترميز الفيديو.
- نظام المكوّنات: يوفّر SceneCore نظام مكوّنات قويًا ومرنًا لإضافة إمكانات إلى محتوى الواقع الممتد، بما في ذلك وسائل مساعدة للمستخدمين لنقل النماذج واللوحات وتغيير حجمها والتفاعل معها.
- نقطة الربط: عند تفعيل ميزة "المرور"، يمكنك ربط اللوحات والنماذج بالأسطح الفعلية، ما يتيح للمستخدمين دمج المحتوى الافتراضي بسلاسة في بيئتهم الواقعية.
- وضعية المستخدم: الوصول إلى الموقع الجغرافي للمستخدم في المشهد الافتراضي لتوجيه المحتوى حول موضع المستخدم
- SpatialCapabilities: يمكنك إنشاء تطبيقات قابلة للتكيّف بالكامل تستفيد من الإمكانات المكانية عند توفّرها، مثل تحديد موضع المحتوى ثلاثي الأبعاد لواجهة المستخدم. بالإضافة إلى ذلك، يمكن لتطبيقك مراقبة التغييرات في الإمكانات أثناء تنفيذه، وذلك لتعديل التجربة استنادًا إلى طريقة استخدام المستخدم لجهاز Android XR.
المشاكل المعروفة
- يجب حاليًا استخدام الإصدار 30 من minSDK لاستخدام Jetpack SceneCore. كحلّ بديل، أضِف إدخال البيان التالي
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>لتتمكّن من الإنشاء والتشغيل باستخدام minSDK 23. - يمكن أن تصبح الجلسة غير صالحة في مواقف مختلفة تؤدي إلى إعادة إنشاء النشاط تلقائيًا، بما في ذلك تغيير حجم لوحة رئيسية، وتوصيل الأجهزة الطرفية، والتبديل بين الوضعَين الفاتح والداكن. إذا واجهت مشاكل في إبطال الجلسة، تتضمّن الحلول البديلة عدم إمكانية تغيير حجم اللوحة الرئيسية، أو استخدام عنصر لوحة ديناميكية، أو إيقاف إعادة إنشاء النشاط لتغييرات إعدادات معيّنة، أو إيقاف تغييرات سمات الوضع الداكن/الفاتح.
- لا تتوافق المكوّنات القابلة للنقل وتغيير الحجم مع GltfEntity.
- لا يمكن استخدام Entity.getSize() على GltfEntity.
- يجب أن تطلب تطبيقات Jetpack XR الإذن
android.permission.SCENE_UNDERSTANDINGفي ملف AndroidManifest. - لا يمكن إنشاء جلسة إلا على جهاز Android XR. في الوقت الحالي، إذا أنشأت جلسة وحاولت استخدامها على جهاز Android XR غير متوافق، سيظهر لك الخطأ RuntimeException.
- لا يؤدي ضبط skybox على القيمة null من خلال `SpatialEnvironment.setSpatialEnvironmentPreference() إلى إنشاء skybox أسود ثابت كما هو موضّح في المستندات. وقد يؤدي ذلك إلى استخدام skybox التلقائي للنظام أو عدم إجراء أي تغيير على skybox الحالي.
- على عملاء SceneCore إضافة
implementation(“com.google.guava:listenablefuture-1.0”)إلى إعدادات Gradle لتبعيات التطبيق. في إصدار مستقبلي، ستتضمّن حزمة scenecore هذه المكتبة كعنصر تابعapi، وبالتالي لن يحتاج العملاء إلى تعريفها بشكل صريح. - تتضمّن SceneCore بشكل خاطئ
com.google.guava:guava-31.1-androidوcom.google.protobuf:protobuf-javaliteكاعتمادات متعدية. إذا نتج عن ذلك أخطاء مكرّرة في الفئة في الإصدار، يمكن استبعاد هذين العنصرَين التابعَين بأمان. - إذا كان تطبيقك يستخدم SceneCore وفعّلت ProGuard، سيتعطّل التطبيق عند إنشاء Session. كحلّ بديل، يمكنك إيقاف ProGuard. يمكنك الاطّلاع على هذا الدليل لمعرفة المزيد من المعلومات حول كيفية تفعيل ProGuard.