জেটপ্যাক সিনকোর

3D সামগ্রী সহ Android XR দৃশ্য গ্রাফ তৈরি করুন এবং পরিচালনা করুন৷
সর্বশেষ আপডেট স্থিতিশীল রিলিজ প্রার্থী মুক্তি বিটা রিলিজ আলফা রিলিজ
30 জুলাই, 2025 - - - 1.0.0-আলফা05

নির্ভরতা ঘোষণা করা

XR SceneCore-এ নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:

গ্রোভি

dependencies {
    implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha05"
    // Required for Java
    implementation "com.google.guava:listenablefuture:1.0"
    // Required for Kotlin
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0"

    // Use to write unit tests
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05"
}

কোটলিন

dependencies {
    implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha05")
    // Required for Java
    implementation("com.google.guava:listenablefuture:1.0")
    // Required for Kotlin
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0")

    // Use to write unit tests
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।

প্রতিক্রিয়া

আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখুন। আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

সংস্করণ 1.0

সংস্করণ 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-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • অনুভূত রেজোলিউশন এপিআই প্যানেল সত্তা এবং SurfaceEntities যোগ করা হয়েছে। ( I118f6 )
  • HSM-এ কার্যকলাপের প্রধান প্যানেলের অনুভূত রেজোলিউশন নিরীক্ষণ করতে Scene.kt-তে PerceivedResolution কলব্যাক পদ্ধতি যোগ করা হয়েছে। ( I58084 )
  • SurfaceEntity - তৈরির সময় সুপার স্যাম্পলিং অনুরোধ করার জন্য অ্যাপ্লিকেশনের জন্য সমর্থন যোগ করা হয়েছে। এটি অ্যান্টি-অ্যালিয়াসিংয়ের জন্য অ্যাপ্লিকেশানগুলিকে সুপার স্যাম্পলিং ফিল্টার ব্যবহার করার অনুমতি দেয়। ( I06913 )
  • ActivitySpacerecommendedContentBoxInFullSpace প্রপার্টি যোগ করা হয়েছে। এটি সম্পূর্ণ স্পেস মোডে থাকা অবস্থায় সামগ্রী রাখার জন্য একটি প্রস্তাবিত বাক্স প্রদান করে। ( I4cd6f )
  • চলমান সংশোধকের জন্য ওভারলোডেড কনস্ট্রাক্টর সরবরাহ করা হয়েছে যা অ্যাঙ্করিংয়ের অনুমতি দেয়। ( IC0c70 )

এপিআই পরিবর্তন

এই রিলিজের জন্য SceneCore এ ব্যাপক API পরিবর্তন করা হয়েছে। বেশ কয়েকটি ক্লাসের নাম পরিবর্তন করা হয়েছে এবং/অথবা বিভিন্ন মডিউলে স্থানান্তরিত করা হয়েছে, এবং বেশিরভাগ গেটার/সেটার পদ্ধতিগুলিকে কোটলিন বৈশিষ্ট্য দিয়ে প্রতিস্থাপিত করা হয়েছে। যদিও আমরা আমাদের প্রথম বিটা রিলিজ না হওয়া পর্যন্ত ভবিষ্যত ব্রেকিং API পরিবর্তনগুলি আশা করি, সেগুলি ততটা বিঘ্নিত বা অসংখ্য হবে না।

  • নাম পরিবর্তন করা হয়েছে এবং/অথবা নিম্নলিখিত ক্লাস এবং ইন্টারফেসগুলি সরানো হয়েছে: androidx.xr.scenecore.PixelDimensions androidx.xr.runtime.math.IntSize2d ; androidx.xr.scenecore.Dimensions androidx.xr.runtime.math.FloatSize3d এর মাত্রা; androidx.xr.scenecore.ActivityPose to ScenePose , androidx.xr.scenecore.ContentlessEntity to GroupEntity , androidx.xr.scenecore.PlaneType থেকে PlaneOrientation ; androidx.xr.scenecore.PlaneSemantic থেকে PlaneSemanticType । ( আইএফডি 405 ) ( আই 3 বি 622 ) ( আইএফ 534 ডি )
  • Scene বৈশিষ্ট্যগুলির জন্য বেশ কয়েকটি সেটার ব্যক্তিগত করা হয়েছে; সেগুলি SceneCore ক্লায়েন্টদের দ্বারা পরিবর্তিত হওয়ার উদ্দেশ্যে ছিল না: activitySpace , activitySpaceRoot , mainPanelEntity , perceptionSpace , spatialCapabilities , spatialEnvironment , এবং spatialUser . ( I2f506 )
  • সত্তায়: নিম্নলিখিতগুলিকে বৈশিষ্ট্যগুলিতে পরিবর্তন করা হয়েছে: get/setParent() , setContentDescription ; Deprecated Entity.is/setHidden() , পরিবর্তে Entity.is/setEnabled ব্যবহার করুন। ( Ibc4c6 )
  • androidx.xr.scenecore.BasePanelEntity ক্লাস সরানো হয়েছে, পরিবর্তে সরাসরি PanelEntity ব্যবহার করুন। বৈশিষ্ট্য সহ PanelEntity জন্য গেটার এবং সেটার প্রতিস্থাপন করা হয়েছে। PanelEntity.size প্রপার্টি Float3dSize থেকে Float2dSize এ পরিবর্তন করা হয়েছে। অপসারিত পদ্ধতি androidx.xr.scenecore.PanelEntity.getPixelDimensions সরানো হয়েছে, পরিবর্তে getSizeInPixels ব্যবহার করুন। ( আইসিসি 174 )
  • androidx.xr.scenecore.OnSpaceUpdatedListener Runnable দিয়ে প্রতিস্থাপিত হয়েছে। ( I19308 )
  • SpatialUser.getCameraViews() একটি সম্পত্তির সাথে প্রতিস্থাপিত হয়েছে। ( Ib0cc5 ) ExrImage এবং GltfModel: সাসপেন্ড ফাংশন হতে create পদ্ধতি পরিবর্তন করা হয়েছে; একটি String এর পরিবর্তে একটি Uri বা Path গ্রহণ করার জন্য পরিবর্তিত প্যারামিটার তৈরি করুন। ( 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 গেটার এবং সেটারগুলিকে কোটলিন বৈশিষ্ট্যগুলির সাথে প্রতিস্থাপন করা হয়েছে: getCurrentPassthroughOpacity() , get/setPassthroughOpacityPreference() , get/setSpatialEnvironmentPreference() , isSpatialEnvironmentPreferenceActive() (e36 () i36 ( ) 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 ) সহ প্রতিস্থাপিত
  • SpatialPointerComponentSpatialPointerIcon আর বাতিলযোগ্য নয়। সিস্টেম ডিফল্ট পয়েন্টার আইকন ব্যবহার করা উচিত তা নির্দেশ করতে নাল এর পরিবর্তে SpatialPointerIcon.DEFAULT ব্যবহার করুন। ( I416d2 )
  • androidx.xr.scenecore.AnchorEntity.getState() শুধুমাত্র পঠনযোগ্য সম্পত্তি দিয়ে প্রতিস্থাপিত হয়েছে। স্বচ্ছতার জন্য AnchorEntity.create() পদ্ধতিতে পরামিতিগুলির নাম পরিবর্তন করা হয়েছে। শ্রোতাদের সেট করার এবং যোগ করার জন্য AnchorEntity এর পদ্ধতিতে, শ্রোতাকে চূড়ান্ত যুক্তিতে সরানো হয়েছে ট্রেলিং ল্যাম্বডাস সক্ষম করার জন্য। AnchorEntity জন্য androidx.xr.scenecore.OnStateChangedListener Consumer<AnchorEntity.State> দিয়ে প্রতিস্থাপন করা হয়েছে। ( I472e0 )
  • GltfModelEntity.getAnimationState() এখন একটি সম্পত্তি। ( I10b29 )
  • ActivitySpace.getBounds() একটি সম্পত্তি দিয়ে প্রতিস্থাপিত হয়েছে। ActivitySpace.addBoundsChangedListener ActivitySpace.addOnBoundsChangedListener এ নামকরণ করা হয়েছে। ActivitySpace.setOnSpaceUpdatedListener যোগ/অপসারণ পদ্ধতি দিয়ে প্রতিস্থাপিত হয়েছে। ( I4c956 )
  • AnchorPlacement: planeTypeFilter নাম পরিবর্তন করে anchorablePlaneOrientations প্লেনঅরিয়েন্টেশন করা হয়েছিল, planeSemanticFilter নাম পরিবর্তন করে anchorablePlaneSemanticTypes টাইপ করা হয়েছিল। একটি AnchorEntity এ একটি MovableComponent যোগ করুন বা ActivitySpace মিথ্যা ফেরত দেবে, MoveListener এর নাম পরিবর্তন করে EntityMoveListener shouldDisposeParentAnchor নাম পরিবর্তন করে disposeParentOnReAnchor systemMovable করা হয়েছিল creeateCustomMovable ( createSystemMovable , এবং createAnchorable ) এর পক্ষে create ফাংশন থেকে সরিয়ে দেওয়া হয়েছিল )
  • SurfaceEntity.featherRadiusX/Y সরানো হয়েছে এবং একটি EdgeFeatheringParams ক্লাস ধারণা যোগ করেছে। ( আইসি৭৮এফসি )
  • PanelEntity.enablePanelDepthTest() পদ্ধতি panelClippingConfig বৈশিষ্ট্য দিয়ে প্রতিস্থাপিত হয়েছে। ডেপথ-টেস্টিং সক্ষম করতে Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true) সেট করুন বা এটি নিষ্ক্রিয় করতে PanelClippingConfig(isDepthTestEnabled = false) সেট করুন। ( I0cbe0 )
  • Scene.mainPanelEntity এখন PanelEntity ( I7125a ) এর পরিবর্তে MainPanelEntity টাইপের
  • BundleForFullSpaceModeLaunch এবং BundleForFullSpaceModeLaunchWithEnvironmentInherited configureBundleForFullSpaceModeLaunch জন্য BundleForFullSpaceModeLaunch এবং setFullSpaceModeWithEnvironmentInherited পদ্ধতি configureBundleForFullSpaceModeLaunchWithEnvironmentInherited জন্য দৃশ্যের setFullSpaceMode পদ্ধতির নামকরণ করা হয়েছে। ( I0cbe0 ) ( I0cbe0 )
  • SpatialVisibility UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV, এবং WITHIN_FOV মানগুলিকে SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, নামকরণ করা হয়েছে, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW, এবং SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW, যথাক্রমে ( Ie7e8c )
  • SpatialVisibility ক্লাস const Int মান সহ পাবলিক অবজেক্ট দিয়ে প্রতিস্থাপিত হয়েছে। setSpatialVisibilityChangedListener এখন Consumer<Int> এর পরিবর্তে Consumer<SpatialVisibility> ( Ie7e8c ) গ্রহণ করে
  • PointerCaptureComponent ধ্রুবকের নাম পরিবর্তন করা হয়েছে এবং PointerCaptureComponent.PointerCaptureState অবজেক্ট ( I9c7ac ) এ সরানো হয়েছে
  • PointerCaptureComponents' StateListener Consumer<Int> দিয়ে প্রতিস্থাপিত করা হয়েছে। ( I9c7ac )
  • Consumer<InputEvent> ( I9c7ac ) দিয়ে InputEventListener প্রতিস্থাপিত
  • setPreferredAspectRatio Scene ক্লাস থেকে SpatialWindow অবজেক্টে স্থানান্তরিত হয়েছে এবং প্রথম প্যারামিটার হিসাবে সেশন গ্রহণ করেছে। ( I7b717 )
  • Entity.setHidden() দ্বারা প্রতিস্থাপিত Entity.setEnabled() এবং Entity.isHidden() দ্বারা প্রতিস্থাপিত Entity.isEnabled()setHidden(false) setEnabled(true) এবং isHidden() == !isEnabled() এর সমান। ( ICf0de )
  • Entity.contentDescription প্রকার String থেকে CharSequence এ পরিবর্তিত হয়েছে। ( e59be )
  • 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 )
  • androidx.xr.scenecore এবং androidx.xr.compose জন্য minSDK কমিয়ে 24 করা হয়েছে। এক্সআর প্যাকেজগুলির এখনও রানটাইমে এপিআই 34 প্রয়োজন। ( I17224 )
  • সমস্ত Jetpack XR প্যাকেজের উপর RequiresApi(34) সীমাবদ্ধতা সরানো হয়েছে। এই বিধিনিষেধটি অপ্রয়োজনীয় ছিল কারণ Jetpack XR বর্তমানে শুধুমাত্র API স্তর 34+ সহ ডিভাইসগুলিতে উপলব্ধ। ( Iae0f8 )
  • প্রধান SceneCore আর্টিফ্যাক্ট ( xr:scenecore:scenecore ) শুধুমাত্র Kotlin-শৈলী async API গুলি ধারণ করবে। জাভা বিকাশকারীরা সামঞ্জস্যপূর্ণ API অ্যাক্সেস করতে xr:scenecore:scenecore-guava লাইব্রেরির উপর নির্ভর করতে পারে। ( If221b )
  • Kotlin 2.0 এর সাথে রিলিজ করা প্রজেক্টের জন্য KGP 2.0.0 বা নতুন ব্যবহার করতে হবে ( Idb6b5 )
  • এই লাইব্রেরিটি এখন JSpecify nullness টীকা ব্যবহার করে, যা টাইপ-ব্যবহার। Kotlin ডেভেলপারদের সঠিক ব্যবহার কার্যকর করতে নিম্নলিখিত কম্পাইলার আর্গুমেন্ট ব্যবহার করা উচিত: -Xjspecify-annotations=strict (এটি Kotlin কম্পাইলারের সংস্করণ 2.1.0 দিয়ে শুরু হওয়া ডিফল্ট) ( Ia8420 )
  • ListenableFuture প্রদানকারী সমস্ত async পদ্ধতি Kotlin সাসপেন্ড ফাংশন দিয়ে প্রতিস্থাপিত হয়েছে। জাভা ডেভেলপাররা যারা Kotlin সাসপেন্ড ফাংশনের পরিবর্তে ListenableFuture ভিত্তিক অ্যাসিঙ্ক পদ্ধতি ব্যবহার করতে চান তাদের এখন :xr:scenecore-scenecore-guava এ এক্সটেনশন ফাংশন ব্যবহার করতে হবে। উদাহরণস্বরূপ , GuavaExrImage Guava-সমতুল্য ExrImage অ্যাসিঙ্ক ফাংশন রয়েছে, GuavaScenePose Guava-সমতুল ScenePose অ্যাসিঙ্ক ফাংশন রয়েছে, GuavaGltfModel Guava- Guava-equivalent GltfModel অ্যাসিঙ্ক ফাংশন রয়েছে, ইত্যাদি Ia8515 ) ( I4efdf ) ( I54bbf ) ( I3467a ) ( I82a33 )

বাগ ফিক্স

  • সংক্ষিপ্ত ক্লায়েন্টদের জন্য AbstractMethodError প্রতিরোধ করতে Jetpack XR Scenecore ProGuard নিয়ম আপডেট করা হয়েছে। ( I91a01 )
  • Jetpack XR SceneCore ( I4f47e ) এর জন্য প্রোগার্ড মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন
  • একটি বাগ সংশোধন করা হয়েছে যেখানে একটি InteractableComponent ক্র্যাশের কারণ হতে পারে যদি InputEvent হিটইনফোতে hitPosition ক্র্যাশ হতে পারে যদি সিস্টেম থেকে ফিরে আসা hitPosition নাল থাকে ( I7a695 )
  • Config *মোড ভাল তাদের আচরণ প্রতিফলিত করার জন্য নতুন নামকরণ করা হয়েছে। ( I6d247 )
  • SceneCore TestApp-এ FOV এবং HitTest এর সমস্যা সমাধান করা হয়েছে। ( I2c51e )
  • SpatialCapabilities.hasCapability() তে বাগ সংশোধন করা হয়েছে যেখানে এটি সত্যি হবে যদি কোন ক্ষমতা বিটওয়াইজ দিয়ে পাস করা হয় বা সত্য হয় তবে শুধুমাত্র সত্য ফেরত দেওয়ার পরিবর্তে যদি সেগুলি সত্য হয়। ( 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" নির্দিষ্ট করতে হবে।
  • StereoSurfaceEntity এখন দুটি নতুন StereoMode মানগুলির মাধ্যমে MV-HEVC প্লেব্যাক সমর্থন করে: MULTIVIEW_LEFT_PRIMARY এবং MULTIVIEW_RIGHT_PRIMARY৷
  • PanelEntity.setSize এবং PanelEntity.getSize এখন প্যারেন্ট স্পেসে মাপ প্রদান করুন।
  • Entity.setPose , Entity.getPose , Entity.setScale , Entity.getScale , Entity.setAlpha এবং Entity.getAlpha এখন একটি নতুন প্যারাম relativeTo গ্রহণ করে, যা বিভিন্ন স্থানের সাপেক্ষে মান পেতে/সেট করার অনুমতি দেয়। সমর্থিত মানগুলি হল অভিভাবক, কার্যকলাপ এবং বাস্তব বিশ্বের স্থান, এবং এই প্যারামের জন্য ডিফল্ট মান হল অভিভাবক৷
  • স্থানিক দৃশ্যমানতা কলব্যাক এক্সটেনশন পদ্ধতিগুলি SessionExt.kt এ যুক্ত করা হয়েছে যখন দৃশ্যের বিষয়বস্তু ব্যবহারকারীর দেখার ক্ষেত্রের ভিতরে বা বাইরে চলে যায় তখন নিরীক্ষণ করতে।
  • SpatialAudioTracksetPointSourceParams যোগ করা হয়েছে, ট্র্যাক তৈরি হওয়ার পর প্যারামগুলি আপডেট করার অনুমতি দেয়।
  • Scenecore এপিআই-এর রেফারেন্স সহ একটি নতুন ক্লাস, সিন যোগ করা হয়েছে। সেশনের এক্সটেনশন প্রপার্টি হিসেবে দৃশ্য অ্যাক্সেসযোগ্য হবে। SessionExt এর ভিতরের ফাংশনগুলিকে দৃশ্যে সরানো হয়েছে তাই আমদানি সামঞ্জস্য করতে হবে; উদাহরণস্বরূপ, SessionExt.getScene(session)addSpatialCapababilitiesChangedListener বনাম SessionExt.addSpatialCapabilitiesChangedListener
  • ActivityPose.hitTestAsync যোগ করা হয়েছে, ভার্চুয়াল সামগ্রীর বিরুদ্ধে একটি hitTest সক্ষম করে৷
  • নতুন কম্পোনেন্ট টাইপ SpatialPointerComponent যোগ করা হয়েছে, ক্লায়েন্টদের পয়েন্টারের জন্য রেন্ডার করা আইকন নির্দিষ্ট করতে বা আইকনটি নিষ্ক্রিয় করার অনুমতি দেয়। এই উপাদানটি বর্তমানে শুধুমাত্র PanelEntity দৃষ্টান্তে সংযুক্ত করা যেতে পারে।
  • নতুন PanelEntity ফ্যাক্টরি পেশ করা হচ্ছে, যা মিটার বা পিক্সেলে প্যানেলের মাত্রা নেয়। পুরোনো PanelEntity ফ্যাক্টরি প্যানেল অপসারণের জন্য দুটি মাত্রা ধরনের প্যারাম গ্রহণ করছে।

এপিআই পরিবর্তন

  • সমস্ত Jetpack XR প্যাকেজের উপর RequiresApi(34) সীমাবদ্ধতা সরানো হয়েছে। এই বিধিনিষেধটি অপ্রয়োজনীয় ছিল কারণ 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) দিয়ে প্রতিস্থাপন করা যেতে পারে।
  • XR রানটাইমে সেশনের পক্ষে SceneCore এ সেশন ক্লাস মুছে ফেলা হয়েছে।
  • StereoSurfaceEntity নাম পরিবর্তন করে SurfaceEntity করা হয়েছে।
  • Entity.setSize এবং Entity.getSize সরানো হয়েছে, এবং একই পদ্ধতিগুলি PanelEntity এ যোগ করা হয়েছে।
  • PointSourceAttributes নাম পরিবর্তন করে PointSourceParams করা হয়েছে।
  • SpatializerConstants.SOURCE\_TYPE\_BYPASS নাম পরিবর্তন করে SpatializerConstants.SOURCE\_TYPE\_DEFAULT করা হয়েছে।
  • PointSourceParams সত্তা সর্বজনীন থেকে অভ্যন্তরীণ অ্যাক্সেসে পরিবর্তন করা হয়েছে৷
  • AnchorEntity.create এখন প্রয়োজন PlaneTrackingMode Session.configure() -এ কনফিগার করা।
  • SpatialUser API-এর এখন HeadTrackingMode প্রয়োজন Session.configure() -এ কনফিগার করা।
  • যখন ResizableComponent সংযুক্ত করা হয় না, তখন এটি ERROR-স্তরের লগের পরিবর্তে INFO-স্তরের লগ দেবে।
  • Fov ক্লাস এখন একটি নিয়মিত কোটলিন ক্লাস।
  • বিভক্ত Entity.kt প্রতিটি কংক্রিট সত্তা টাইপ তার নিজস্ব ফাইলে স্থাপন করুন।
  • একটি নতুন PanelEntity তৈরি করার সময়, বেশিরভাগ ভিউ একটি FrameLayout এ পুনরায় সাজানো হবে। এটি স্থানিক প্যানেলের সাথে LayoutInspector এর ব্যবহার সহজতর করে।
  • বর্তমানে ব্যবহৃত XrExtensions উদাহরণটি এখন প্ল্যাটফর্মের সাথে নিবন্ধিত হয়েছে, একটি সর্বোত্তম প্রচেষ্টার উপায়ে, অ্যাপ ডিবাগিংয়ে সহায়তা করার জন্য।

বাগ ফিক্স

  • MovableComponent এবং AnchorPlacement সহ একটি PanelEntity সরানো হলে ক্র্যাশ প্রতিরোধ করার জন্য একটি ফিক্স যোগ করা হয়েছিল
  • একটি সমস্যা সমাধান করা হয়েছে যেখানে ResizableComponent onResizeStart কলব্যাকে বাসি মাপ প্রদান করছে।
  • JxrPlatformAdapterAxr এর dispose() একাধিকবার কল করা হলে ক্র্যাশ স্থির করা হয়েছে।

সংস্করণ 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 এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • প্রোগার্ড মিনিফিকেশন এখন জেটপ্যাক এক্সআর কোডের জন্য সমর্থিত

বাগ ফিক্স

  • Jetpack XR SceneCore ( I4f47e ) এর জন্য প্রোগার্ড মিনিফিকেশন সমর্থন করার জন্য অতিরিক্ত সংশোধন
  • সংক্ষিপ্ত ক্লায়েন্টদের জন্য AbstractMethodError প্রতিরোধ করতে Jetpack XR Scenecore ProGuard নিয়ম আপডেট করা হয়েছে। ( 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.setFullSpaceMode
    • import 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.getEntitiesOfType
    • import androidx.xr.scenecore.getEntityForRtEntity
  • Session.unpersistAnchor(Anchor) মুছে ফেলা হয়েছে
  • Session.createPersistedAnchorEntity(UUID) মুছে ফেলা হয়েছে

পরিচিত সমস্যা

  • PanelEntity.setCornerRadius() এবং ActivityPanelEntity.setCornerRadius() প্যানেলটি পরবর্তী স্থানান্তর না হওয়া পর্যন্ত কার্যকর নাও হতে পারে, প্যানেলটিকে তার বর্তমান অবস্থানে সরানোর মাধ্যমে এটি হ্রাস করা যেতে পারে
  • যখন ActivitySpaceBoundsChanged কল করা হয়, তখন কিছু ActivityPose সঠিকভাবে আপডেট নাও হতে পারে। ActivitySpace এ নিম্নলিখিত OnSpaceUpdated কলে এটি আপডেট করা হবে

ব্রেকিং এবং আচরণগত পরিবর্তন

  • PanelEntity এবং ActivityPanelEntity এর একটি ডিফল্ট কোণার ব্যাসার্ধ 32dp বা ছোট হবে যদি প্যানেলের প্রস্থ বা উচ্চতা 32dp-এর চেয়ে ছোট হয়

নতুন API এবং ক্ষমতা

  • StereoSurface.CanvasShape প্রবর্তন করে, যা ইমারসিভ মিডিয়া রেন্ডার করার জন্য Spherical এবং Hemispherical ক্যানভাস তৈরি করতে দেয়।
  • StereoSurfaceEntity.create() এখন একটি CanvasShape প্যারামিটার গ্রহণ করে। (এই প্যারামিটারটি বর্তমানে উপেক্ষা করা হয়েছে, তবে ভবিষ্যতের রিলিজে ব্যবহার করা হবে)
  • StereoSurfaceEntity.create() আর একটি Dimensions প্যারামিটার নেয় না। CanvasShape সেট করার মাধ্যমে অ্যাপ্লিকেশনগুলিকে ক্যানভাসের আকার নিয়ন্ত্রণ করা উচিত
  • StereoSurfaceEntity এর একটি CanvasShape সদস্য রয়েছে যা গতিশীলভাবে সেট করা যেতে পারে।
  • StereoSurfaceEntity.dimensions এখন শুধুমাত্র পঠনযোগ্য সম্পত্তি; অ্যাপ্লিকেশনের মাত্রা পরিবর্তন করতে CanvasShape সেট করা উচিত।
  • StereoSurfaceEntity এখন StereoMode নির্মাণের পরে পুনরায় সেট করার অনুমতি দেয়।

অন্যান্য পরিবর্তন

  • কম্পাইল-টাইম minSDK কমিয়ে 24 করা হয়েছে। সমস্ত Jetpack XR API-এর জন্য রানটাইমে API 34-এর প্রয়োজন অব্যাহত রয়েছে।
  • SceneCore এর সেশন ফ্যাক্টরি ( Session.create ) আর SCENE_UNDERSTANDING অনুমতি অর্জনের কোনো উদ্দেশ্য চালু করে না৷ পরিবর্তে, অ্যাঙ্কর তৈরি করার চেষ্টা করার আগে ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অবশ্যই ব্যবহারকারীর কাছ থেকে স্পষ্টভাবে অনুমতির অনুরোধ করতে হবে। ব্যবহারকারীর অনুমতি না দিলে অ্যাঙ্কর তৈরি ব্যর্থ হবে।

বাগ ফিক্স

  • getActivitySpacePose() ActivitySpace স্কেলের জন্য অ্যাকাউন্টে স্থির করা হয়েছে সবসময় অ-স্কেল করা মিটার ফেরত না দিয়ে স্কেল করা মিটারে অনুবাদের মান ফিরিয়ে দিয়ে। যখন ActivitySpace উৎস বা গন্তব্যের সাথে জড়িত থাকে তখন transformPoseTo এখন সমন্বয় পরিবর্তনের গণনা করার জন্য সঠিক ইউনিট ব্যবহার করে।
  • স্কাইবক্সটি এখন একটি সম্পূর্ণ-কালো স্কাইবক্সে সেট করা হবে যখনই setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)) ব্যবহার করে একটি নাল স্কাইবক্স পছন্দ পাস করা হবে। সিস্টেম ডিফল্ট স্কাইবক্স এবং জ্যামিতিতে প্রত্যাবর্তন করতে, setSpatialEnvironmentPreference(null).

সংস্করণ 1.0.0-alpha01

ডিসেম্বর 12, 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 প্রকাশিত হয়েছে।

প্রারম্ভিক রিলিজের বৈশিষ্ট্য জেটপ্যাক সিনকোরের প্রাথমিক বিকাশকারী রিলিজ, নিমজ্জিত দৃশ্য এবং পরিবেশ তৈরি এবং ম্যানিপুলেট করার জন্য একটি 3D দৃশ্য গ্রাফ লাইব্রেরি। এই লাইব্রেরি আপনাকে একে অপরের এবং আপনার ভার্চুয়াল বা বাস্তব-বিশ্বের পরিবেশের সাথে সম্পর্কিত 3D মডেল এবং সামগ্রী প্যানেল স্থাপন এবং সাজানোর অনুমতি দেয়।

  • স্থানিক পরিবেশ : আপনার পরিবেশের XR দৃশ্যের পটভূমি হিসাবে একটি স্কাইবক্স ইমেজ এবং/অথবা 3D মডেল জ্যামিতির সাথে সম্পূর্ণ নিমগ্ন অভিজ্ঞতা তৈরি করুন। অথবা পাসথ্রু সক্ষম করুন, যাতে আপনার ভার্চুয়াল দৃশ্য ব্যবহারকারীর বাস্তব-বিশ্বের পরিবেশের সাথে একীভূত হতে পারে।
  • PanelEntity : 2D কন্টেন্ট যোগ করুন আপনার 3D দৃশ্যে স্ট্যান্ডার্ড অ্যান্ড্রয়েড লেআউট এবং অ্যাক্টিভিটিগুলিকে স্থানিক প্যানেলে এম্বেড করে যা ভাসতে পারে বা বাস্তব-বিশ্বের পৃষ্ঠে নোঙ্গর করতে পারে।
  • GltfModelEntity : আপনার দৃশ্যে 3D মডেল রাখুন, অ্যানিমেট করুন এবং ইন্টারঅ্যাক্ট করুন। SceneCore বিদ্যমান মডেলগুলির সাথে একীকরণের সহজতার জন্য glTF ফাইল বিন্যাস সমর্থন করে।
  • স্থানিক অডিও : সম্পূর্ণ নিমজ্জিত, স্থানিক শব্দের জন্য আপনার 3D দৃশ্যে পরিবেষ্টিত এবং পয়েন্ট অডিও উত্স যোগ করুন।
  • StereoSurfaceEntity : SceneCore একটি Android সারফেসে রেন্ডার করা বিষয়বস্তুর বাম/ডান চোখের রাউটিং সমর্থন করে। এটি স্টেরিওস্কোপিক বিষয়বস্তুকে পাশে-পাশে বা টপ-বটম ফরম্যাটে রেন্ডার করতে ব্যবহার করা যেতে পারে, যেমন স্টেরিও ফটো, 3D ভিডিও বা অন্যান্য গতিশীলভাবে রেন্ডার করা UI। অ্যাপ্লিকেশন ভিডিও ডিকোডিং জন্য MediaPlayer বা ExoPlayer ব্যবহার করা উচিত.
  • কম্পোনেন্ট সিস্টেম: সিনকোর আপনার XR সামগ্রীতে সক্ষমতা যোগ করার জন্য একটি শক্তিশালী এবং নমনীয় উপাদান সিস্টেম অফার করে, যার মধ্যে ব্যবহারকারীদের মডেল এবং প্যানেলের সাথে সরানো, আকার পরিবর্তন করা এবং ইন্টারঅ্যাক্ট করার সুযোগ রয়েছে।
  • অ্যাঙ্কর : পাসথ্রু সক্ষম করে, আপনি প্যানেল এবং মডেলগুলিকে প্রকৃত পৃষ্ঠের সাথে সংযুক্ত করতে পারেন, ব্যবহারকারীদের তাদের বাস্তব-বিশ্বের পরিবেশে ভার্চুয়াল সামগ্রীর বিরামহীন একীকরণ প্রদান করে৷
  • ব্যবহারকারীর ভঙ্গি: ব্যবহারকারীর অবস্থানের চারপাশে আপনার বিষয়বস্তুকে অভিমুখী করতে ভার্চুয়াল দৃশ্যে ব্যবহারকারীর অবস্থান অ্যাক্সেস করুন।
  • স্থানিক সক্ষমতা : সম্পূর্ণরূপে অভিযোজিত অ্যাপ্লিকেশনগুলি তৈরি করুন যা উপলব্ধ থাকলে স্থানিক ক্ষমতার সুবিধা নেয়, যেমন UI সামগ্রীর 3D অবস্থান। শুধু তাই নয়, ব্যবহারকারী কীভাবে তাদের অ্যান্ড্রয়েড এক্সআর ডিভাইস ব্যবহার করছেন তার উপর ভিত্তি করে অভিজ্ঞতা পরিবর্তন করতে আপনার অ্যাপটি অ্যাপটি চালানোর সময় ক্ষমতার পরিবর্তনের জন্য নিরীক্ষণ করতে পারে।

পরিচিত সমস্যা

  • বর্তমানে Jetpack SceneCore ব্যবহার করার জন্য 30 এর একটি minSDK প্রয়োজন। একটি কার্যকারিতা হিসাবে নিম্নলিখিত ম্যানিফেস্ট এন্ট্রি যুক্ত করুন <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> 23 এর একটি মিনিটসডিকে দিয়ে চালাতে সক্ষম হতে।
  • সেশনটি বিভিন্ন পরিস্থিতিতে অবৈধ হয়ে যেতে পারে যা স্বয়ংক্রিয়ভাবে একটি প্রধান প্যানেলের আকার পরিবর্তন করা, পেরিফেরাল সংযোগ করা এবং আলো এবং অন্ধকার মোডের মধ্যে পরিবর্তন সহ কার্যকলাপ পুনরায় তৈরি করে। আপনি যদি সেশনের অবৈধকরণের সমস্যার সম্মুখীন হন, তাহলে সমাধানের মধ্যে রয়েছে আপনাকে প্রধান প্যানেল অ-আকারযোগ্য করে তোলা, একটি গতিশীল প্যানেল সত্তা ব্যবহার করে, নির্দিষ্ট কনফিগার পরিবর্তনের জন্য কার্যকলাপ বিনোদন অক্ষম করা বা আলো/অন্ধকার মোড থিম পরিবর্তনগুলি অক্ষম করা।
  • GltfEntity-এ চলমান এবং পরিবর্তনযোগ্য উপাদান সমর্থিত নয়।
  • Entity.getSize() GltfEntity-এ সমর্থিত নয়।
  • Jetpack XR অ্যাপগুলিকে AndroidManifest-এ android.permission.SCENE_UNDERSTANDING অনুমতির অনুরোধ করতে হবে।
  • একটি সেশন তৈরি করা শুধুমাত্র একটি Android XR ডিভাইসে সমর্থিত। এই সময়ে, আপনি যদি একটি সেশন তৈরি করেন এবং এটি একটি নন-অ্যান্ড্রয়েড XR ডিভাইসে ব্যবহার করার চেষ্টা করেন, আপনি একটি RuntimeException পাবেন।
  • `SpatialEnvironment.setSpatialEnvironmentPreference() এর মাধ্যমে স্কাইবক্সটিকে নাল সেট করার ফলে নথিভুক্ত হিসাবে একটি কঠিন কালো স্কাইবক্স তৈরি হয় না। এর ফলে সিস্টেম ডিফল্ট স্কাইবক্স বা বর্তমান স্কাইবক্সে কোনো পরিবর্তন নাও হতে পারে।
  • SceneCore ক্লায়েন্টদের তাদের অ্যাপের নির্ভরতার জন্য তাদের Gradle কনফিগারেশনে implementation(“com.google.guava:listenablefuture-1.0”) যোগ করা উচিত। ভবিষ্যতের রিলিজে, সিনকোর এই লাইব্রেরিটিকে একটি api নির্ভরতা হিসাবে অন্তর্ভুক্ত করবে যাতে ক্লায়েন্টদের স্পষ্টভাবে এটি ঘোষণা করতে হবে না।
  • SceneCore ভুলভাবে com.google.guava:guava-31.1-android এবং com.google.protobuf:protobuf-javalite ট্রানজিটিভ নির্ভরতা হিসেবে অন্তর্ভুক্ত করে। যদি এর ফলে আপনার বিল্ডে ডুপ্লিকেট ক্লাস ত্রুটি হয়, তাহলে এই দুটি নির্ভরতা নিরাপদে বাদ দেওয়া যেতে পারে।
  • যদি আপনার অ্যাপ SceneCore ব্যবহার করে এবং ProGuard সক্ষম করে, আপনি একটি সেশন তৈরি করার সময় এটি ক্র্যাশ হয়ে যাবে। একটি সমাধান হিসাবে, ProGuard অক্ষম করুন। ProGuard কিভাবে সক্ষম করবেন সে সম্পর্কে আরও তথ্যের জন্য এই নির্দেশিকাটি দেখুন।