√ Built build\app\outputs\flutter-apk\app-debug.apk
D/FlutterEmbedLog( 7029): onAttachedToEngine
D/FlutterEmbedLog( 7029): onAttachedToActivity
D/FlutterEmbedLog( 7029): Activity resumed, resuming Unity
Connecting to VM Service at ws://127.0.0.1:1851/hE4igOjN93Y=/ws
D/com.learntoflutter.flutter_embed_unity_android.platformView.UnityViewFactory@4db3836( 7029): UnityViewFactory creating view 0
I/IL2CPP ( 7029): JNI_OnLoad
I/FlutterEmbedLog( 7029): Attached Unity to view
I/FlutterEmbedLog( 7029): Attached Unity to new view
D/FlutterEmbedLog( 7029): UnityPlatformView onFlutterViewAttached
I/PlatformViewsController( 7029): Hosting view in a virtual display for platform view: 0
I/PlatformViewsController( 7029): PlatformView is using SurfaceTexture backend
D/Dialog ( 7029): mIsSamsungBasicInteraction = false
D/Dialog ( 7029): mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
D/vndksupport( 7029): Loading /vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace.
I/DecorView( 7029): createDecorCaptionView >> DecorView@bdb2310[], isFloating: false, isApplication: false, hasWindowDecorCaption: false, hasWindowControllerCallback: false
D/InputTransport( 7029): Input channel constructed: fd=96
D/ViewRootImpl@4eea71a[MainActivity]( 7029): setView = DecorView@bdb2310[MainActivity] TM=true MM=false
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x3 surface={valid=true 503242113024} changed=false
V/InputMethodManager( 7029): Not IME target window, ignoring
D/FlutterEmbedLog( 7029): UnityPlayerSingleton onWindowVisibilityChanged 0
D/FlutterEmbedLog( 7029): UnityPlayerSingleton became visible, so pausing and resuming Unity
D/SurfaceView( 7029): onWindowVisibilityChanged(0) true com.unity3d.player.a{e296541 VFE...... ......I. 0,0-0,0 #7f05004f app:id/unitySurfaceView} of ViewRootImpl@4eea71a[MainActivity]
D/ViewRootImpl@4eea71a[MainActivity]( 7029): dispatchAttachedToWindow
D/ViewRootImpl@4eea71a[MainActivity]( 7029): Relayout returned: old=[0,0][720,788] new=[0,0][720,788] result=0x7 surface={valid=true 502678339584} changed=true
D/mali_winsys( 7029): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/OpenGLRenderer( 7029): eglCreateWindowSurface = 0x7509fc9b80, 0x7509f6c010
D/SurfaceView( 7029): show() Surface(name=SurfaceView - Sys2030:com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@e296541@0[7029])/@0x5c01ae6 com.unity3d.player.a{e296541 VFE...... ......ID 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/SurfaceView( 7029): surfaceCreated 1 #8 com.unity3d.player.a{e296541 VFE...... ......ID 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/SurfaceView( 7029): surfaceChanged (720,788) 1 #8 com.unity3d.player.a{e296541 VFE...... ......ID 0,0-720,788 #7f05004f app:id/unitySurfaceView}
I/Unity ( 7029): MemoryManager: Using 'Dynamic Heap' Allocator.
W/d_unity_exampl( 7029): Accessing hidden method Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V (light greylist, reflection)
D/ViewRootImpl@4eea71a[MainActivity]( 7029): Relayout returned: old=[0,0][720,788] new=[0,0][720,788] result=0x3 surface={valid=true 502678339584} changed=false
D/ViewRootImpl@4eea71a[MainActivity]( 7029): MSG_RESIZED: frame=Rect(0, 0 - 720, 788) ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0) or=1
I/Unity ( 7029): SystemInfo CPU = ARM64 FP ASIMD AES, Cores = 8, Memory = 3679mb
I/Unity ( 7029): SystemInfo ARM big.LITTLE configuration: 4 big (mask: 0xf0), 4 little (mask: 0xf)
I/Unity ( 7029): ApplicationInfo com.learntoflutter.flutter_embed_unity_example version 1.0
I/Unity ( 7029): Built from '2022.3/staging' branch, Version '2022.3.33f1 (b2c853adf198)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a', Stripping 'Enabled'
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x3 surface={valid=true 503242113024} changed=false
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x3 surface={valid=true 503242113024} changed=false
D/InputMethodManager( 7029): prepareNavigationBarInfo() DecorView@9b0e2bd[MainActivity]
D/InputMethodManager( 7029): getNavigationBarColor() -855310
V/InputMethodManager( 7029): Starting input: tba=com.learntoflutter.flutter_embed_unity_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager( 7029): startInputInner - Id : 0
I/InputMethodManager( 7029): startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport( 7029): Input channel constructed: fd=109
D/InputTransport( 7029): Input channel destroyed: fd=89
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x1 surface={valid=true 503242113024} changed=false
I/d_unity_exampl( 7029): Compiler allocated 4MB to compile void android.view.ViewRootImpl.performTraversals()
I/flutter ( 7029): FlutterEmbed: onPlatformViewCreated(0)
D/ViewRootImpl@da5e15f[MainActivity]( 7029): setWindowStopped(true) old=false
D/SurfaceView( 7029): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384} of ViewRootImpl@da5e15f[MainActivity]
D/SurfaceView( 7029): show() Surface(name=SurfaceView - com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@c93b274@0[7029])/@0xb321012 io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384}
D/SurfaceView( 7029): surfaceDestroyed callback.size 1 #1 io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384}
W/libEGL ( 7029): EGLNativeWindowType 0x752b916010 disconnect failed
D/SurfaceView( 7029): destroy() Surface(name=SurfaceView - com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@c93b274@0[7029])/@0xb321012 io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384}
E/SchedPolicy( 7029): set_timerslack_ns write failed: Operation not permitted
I/Unity ( 7029): Company Name: DefaultCompany
I/Unity ( 7029): Product Name: FlutterEmbedUnityExample
D/mali_winsys( 7029): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/Unity ( 7029): GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_
D/Unity ( 7029): to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_sh
D/Unity ( 7029): ader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_shader_non_constant_global_initializers GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_textures GL_EXT_buffer_storage GL_EXT_external_buffer GL_EXT_EGL_image_array
I/chatty ( 7029): uid=11295(com.learntoflutter.flutter_embed_unity_example) UnityMain identical 14 lines
E/SchedPolicy( 7029): set_timerslack_ns write failed: Operation not permitted
D/ ( 7029): PlayerBase::PlayerBase()
D/ ( 7029): TrackPlayerBase::TrackPlayerBase()
I/libOpenSLES( 7029): Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2)
W/AudioTrack( 7029): notificationFrames=-10 clamped to the range -1 to -8
I/AudioTrack( 7029): AUDIO_OUTPUT_FLAG_FAST successful; frameCount 0 -> 1536
I/AudioTrack( 7029): updateAudioTranstionLength FadeIn[0] FadeOut[0] FadeInRing[0]
W/Unity ( 7029): The referenced script (Unknown) on this Behaviour is missing!
W/Unity ( 7029): The referenced script on this Behaviour (Game Object '<null>') is missing!
D/ViewRootImpl@da5e15f[MainActivity]( 7029): setWindowStopped(false) old=true
D/SurfaceView( 7029): windowStopped(false) false io.flutter.embedding.android.FlutterSurfaceView{c93b274 G.E...... ......I. 0,0-720,1384} of ViewRootImpl@da5e15f[MainActivity]
D/SurfaceView( 7029): show() Surface(name=SurfaceView - com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@c93b274@1[7029])/@0xb23b62a io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ......ID 0,0-720,1384}
D/SurfaceView( 7029): surfaceCreated 1 #3 io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ......ID 0,0-720,1384}
D/mali_winsys( 7029): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/SurfaceView( 7029): surfaceChanged (720,1384) 1 #3 io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ......ID 0,0-720,1384}
D/InputMethodManager( 7029): prepareNavigationBarInfo() DecorView@9b0e2bd[MainActivity]
D/InputMethodManager( 7029): getNavigationBarColor() -855310
V/InputMethodManager( 7029): Starting input: tba=com.learntoflutter.flutter_embed_unity_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager( 7029): startInputInner - Id : 0
I/InputMethodManager( 7029): startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport( 7029): Input channel constructed: fd=119
D/InputTransport( 7029): Input channel destroyed: fd=109
D/ViewRootImpl@da5e15f[MainActivity]( 7029): setWindowStopped(false) old=false
D/FlutterEmbedLog( 7029): Activity resumed, resuming Unity
I/Unity ( 7029): XRGeneral Settings awakening...
I/Unity ( 7029): UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
I/Unity ( 7029): UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
I/Unity ( 7029): UnityEngine.Logger:Log(LogType, Object)
I/Unity ( 7029): UnityEngine.Debug:Log(Object)
I/Unity ( 7029): UnityEngine.XR.Management.XRGeneralSettings:Awake()
I/Unity ( 7029):
I/IL2CPP ( 7029): Locale en-GB
I/native ( 7029): I0000 00:00:1718716607.710883 7097 arpresto_api.cc:36] ArPresto::ArPresto_initialize
V/Unity-ARCore( 7029): Initializing ARCore Pause Handler
V/Unity-ARCore( 7029): PauseHandler: JNI not attached to thread. Attempting to attach.
V/Unity-ARCore( 7029): PauseHandler: Attached JNI to thread.
D/SensorManager( 7029): registerListener :: 6, LSM6DSL Acceleration Sensor, 200000, 0,
D/ ( 7029): PlayerBase::stop() from IPlayer
D/AudioTrack( 7029): stop() called with 112896 frames delivered
I/AudioTrack( 7029): Skip ramp
W/libEGL ( 7029): EGLNativeWindowType 0x750a02d010 disconnect failed
D/mali_winsys( 7029): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/SurfaceView( 7029): onWindowVisibilityChanged(8) false com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView} of ViewRootImpl@4eea71a[MainActivity]
D/SurfaceView( 7029): show() Surface(name=SurfaceView - Sys2030:com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@e296541@0[7029])/@0x5c01ae6 com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/SurfaceView( 7029): surfaceDestroyed callback.size 1 #2 com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView}
W/OpenGLRenderer( 7029): Surface doesn't have any previously queued frames, nothing to readback from
V/MediaRouter( 7029): Adding route: RouteInfo{ name=Phone, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
V/MediaRouter( 7029): Selecting route: RouteInfo{ name=Phone, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
D/SurfaceView( 7029): destroy() Surface(name=SurfaceView - Sys2030:com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@e296541@0[7029])/@0x5c01ae6 com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/FlutterEmbedLog( 7029): UnityPlayerSingleton onWindowVisibilityChanged 8
D/ ( 7029): NULL == surf->write_back_color_buffer
D/ ( 7029): NULL == surf->write_back_color_buffer
D/Dialog ( 7029): mIsSamsungBasicInteraction = false
D/Dialog ( 7029): mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
E/BufferQueueProducer( 7029): [SurfaceTexture-0-7029-0] disconnect: not connected (req=1)
I/DecorView( 7029): createDecorCaptionView >> DecorView@cadfdda[], isFloating: false, isApplication: false, hasWindowDecorCaption: false, hasWindowControllerCallback: false
D/InputTransport( 7029): Input channel constructed: fd=106
D/ViewRootImpl@df81b94[MainActivity]( 7029): setView = DecorView@cadfdda[MainActivity] TM=true MM=false
D/OpenGLRenderer( 7029): eglDestroySurface = 0x7509fc9b80, 0x7509f6c000
D/ViewRootImpl@4eea71a[MainActivity]( 7029): dispatchDetachedFromWindow
D/ViewRootImpl@4eea71a[MainActivity]( 7029): Surface release. android.view.ViewRootImpl.doDie:7976 android.view.ViewRootImpl.die:7944 android.view.WindowManagerGlobal.removeViewLocked:497 android.view.WindowManagerGlobal.removeView:435 android.view.WindowManagerImpl.removeViewImmediate:124 android.app.Dialog.dismissDialog:518 android.app.Dialog.dismiss:501 android.app.Dialog.cancel:1462
D/InputTransport( 7029): Input channel destroyed: fd=96
D/ViewRootImpl@da5e15f[MainActivity]( 7029): MSG_RESIZED_REPORT: frame=Rect(0, 0 - 720, 1480) ci=Rect(0, 48 - 0, 96) vi=Rect(0, 48 - 0, 96) or=1
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x1 surface={valid=true 503242113024} changed=false
V/InputMethodManager( 7029): Not IME target window, ignoring
D/FlutterEmbedLog( 7029): UnityPlayerSingleton onWindowVisibilityChanged 0
D/FlutterEmbedLog( 7029): UnityPlayerSingleton became visible, so pausing and resuming Unity
D/SurfaceView( 7029): onWindowVisibilityChanged(0) true com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView} of ViewRootImpl@df81b94[MainActivity]
D/ViewRootImpl@df81b94[MainActivity]( 7029): dispatchAttachedToWindow
D/ViewRootImpl@df81b94[MainActivity]( 7029): Relayout returned: old=[0,0][720,788] new=[0,0][720,788] result=0x7 surface={valid=true 502528794624} changed=true
D/mali_winsys( 7029): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/OpenGLRenderer( 7029): eglCreateWindowSurface = 0x7509fc9b80, 0x75010ce010
D/SurfaceView( 7029): show() Surface(name=SurfaceView - Sys2030:com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@e296541@1[7029])/@0x383063d com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/SurfaceView( 7029): surfaceCreated 1 #8 com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/SurfaceView( 7029): surfaceChanged (720,788) 1 #8 com.unity3d.player.a{e296541 VFE...... ........ 0,0-720,788 #7f05004f app:id/unitySurfaceView}
D/mali_winsys( 7029): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/ViewRootImpl@df81b94[MainActivity]( 7029): Relayout returned: old=[0,0][720,788] new=[0,0][720,788] result=0x3 surface={valid=true 502528794624} changed=false
D/ViewRootImpl@df81b94[MainActivity]( 7029): MSG_RESIZED: frame=Rect(0, 0 - 720, 788) ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0) or=1
I/native ( 7029): I0000 00:00:1718716610.317826 7097 arpresto_api.cc:111] ArPresto::ArPresto_checkApkAvailability
I/native ( 7029): I0000 00:00:1718716610.719147 7097 arpresto_api.cc:80] ArPresto::ArPresto_handleActivityPause
I/native ( 7029): I0000 00:00:1718716610.736396 7097 arpresto_api.cc:70] ArPresto::ArPresto_handleActivityResume
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x1 surface={valid=true 503242113024} changed=false
V/MediaRouter( 7029): onRestoreRoute() : route=RouteInfo{ name=Phone, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
V/MediaRouter( 7029): Selecting route: RouteInfo{ name=Phone, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
I/Unity ( 7029): ARCheckAvailability: check
I/Unity ( 7029): UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
I/Unity ( 7029): UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
I/Unity ( 7029): UnityEngine.Logger:Log(LogType, Object)
I/Unity ( 7029): UnityEngine.Debug:Log(Object)
I/Unity ( 7029): Assets.Scripts.<CheckAvailabilityCoroutine>d__2:MoveNext()
I/Unity ( 7029): UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
I/Unity ( 7029): UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator)
I/Unity ( 7029): UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
I/Unity ( 7029): Assets.Scripts.ARCheckAvailability:Start()
I/Unity ( 7029):
I/Unity ( 7029): ARCheckAvailability: checking...
I/Unity ( 7029): UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
I/Unity ( 7029): UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
I/Unity ( 7029): UnityEngine.Logger:Log(LogType, Object)
I/Unity ( 7029): UnityEngine.Debug:Log(Object)
I/Unity ( 7029): Assets.Scripts.<CheckAvailabilityCoroutine>d__2:MoveNext()
I/Unity ( 7029): UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
I/Unity ( 7029): UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator)
I/Unity ( 7029): UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
I/Unity ( 7029): Assets.Scripts.ARCheckAvailability:Start()
I/Unity ( 7029):
E/Unity ( 7029): OPENGL NATIVE PLUG-IN ERROR: GL_OUT_OF_MEMORY: Not enough memory left to execute command
I/native ( 7029): I0000 00:00:1718716610.819003 7097 arpresto_api.cc:193] ArPresto::ArPresto_setCameraTextureNames
I/native ( 7029): I0000 00:00:1718716610.819069 7097 arpresto_api.cc:212] ArPresto::ArPresto_setEnabled
W/Unity ( 7029): Additional Lights Cookie Format (GrayscaleHigh) is not supported by the platform. Falling back to 32-bit format (RGBA8 UNorm)
W/Unity ( 7029): UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
W/Unity ( 7029): UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
W/Unity ( 7029): UnityEngine.Logger:Log(LogType, Object)
W/Unity ( 7029): UnityEngine.Debug:LogWarning(Object)
W/Unity ( 7029): UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset:get_additionalLightsCookieFormat()
W/Unity ( 7029): UnityEngine.Rendering.Universal.UniversalRenderer:.ctor(UniversalRendererData)
W/Unity ( 7029): UnityEngine.Rendering.Universal.UniversalRendererData:Create()
W/Unity ( 7029): UnityEngine.Rendering.Universal.ScriptableRendererData:InternalCreateRenderer()
W/Unity ( 7029): UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset:CreateRenderers()
W/Unity ( 7029): UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset:CreatePipeline()
W/Unity ( 7029): UnityEngine.Rendering.RenderPipelineAsset:InternalCreatePipeline()
W/Unity ( 7029): UnityEngine.Rendering.RenderPipelineManager:PrepareRenderPipeline(RenderPipelineAsset)
W/Unity ( 7029): UnityEngine.Rendering.RenderPipelineManag
E/Unity ( 7029): AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/window/OnBackInvokedCallback;
E/Unity ( 7029): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/window/OnBackInvokedCallback;
E/Unity ( 7029): at java.lang.reflect.Executable.getMethodReturnTypeInternal(Native Method)
E/Unity ( 7029): at java.lang.reflect.Method.getReturnType(Method.java:148)
E/Unity ( 7029): at java.lang.Class.getDeclaredMethods(Class.java:1880)
E/Unity ( 7029): at com.unity3d.player.ReflectionHelper.getMethodID(Unknown Source:26)
E/Unity ( 7029): at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
E/Unity ( 7029): at com.unity3d.player.UnityPlayer.-$$Nest$mnativeRender(Unknown Source:0)
E/Unity ( 7029): at com.unity3d.player.UnityPlayer$F$a.handleMessage(Unknown Source:122)
E/Unity ( 7029): at android.os.Handler.dispatchMessage(Handler.java:102)
E/Unity ( 7029): at android.os.Looper.loop(Looper.java:214)
E/Unity ( 7029): at com.unity3d.player.UnityPlayer$F.run(Unknown Source:24)
E/Unity ( 7029): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.window.OnBackInvokedCallback" on path: DexPathList[[zip file "/data/app/com.learntoflutter.flutter_embed_uni
I/Unity ( 7029): ARCheckAvailability: available
I/Unity ( 7029): UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
I/Unity ( 7029): UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
I/Unity ( 7029): UnityEngine.Logger:Log(LogType, Object)
I/Unity ( 7029): UnityEngine.Debug:Log(Object)
I/Unity ( 7029): Assets.Scripts.<CheckAvailabilityCoroutine>d__2:MoveNext()
I/Unity ( 7029): UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
I/Unity ( 7029):
D/ViewRootImpl@da5e15f[MainActivity]( 7029): ViewPostIme pointer 0
D/ViewRootImpl@da5e15f[MainActivity]( 7029): ViewPostIme pointer 1
D/InputMethodManager( 7029): prepareNavigationBarInfo() DecorView@9b0e2bd[MainActivity]
D/InputMethodManager( 7029): getNavigationBarColor() -855310
V/InputMethodManager( 7029): Starting input: tba=com.learntoflutter.flutter_embed_unity_example ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
D/InputMethodManager( 7029): startInputInner - Id : 0
I/InputMethodManager( 7029): startInputInner - mService.startInputOrWindowGainedFocus
D/InputTransport( 7029): Input channel constructed: fd=135
D/InputTransport( 7029): Input channel destroyed: fd=119
D/ViewRootImpl@da5e15f[MainActivity]( 7029): setWindowStopped(true) old=false
D/SurfaceView( 7029): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384} of ViewRootImpl@da5e15f[MainActivity]
D/SurfaceView( 7029): show() Surface(name=SurfaceView - com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@c93b274@1[7029])/@0xb23b62a io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384}
D/SurfaceView( 7029): surfaceDestroyed callback.size 1 #1 io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384}
W/libEGL ( 7029): EGLNativeWindowType 0x750117f010 disconnect failed
D/SurfaceView( 7029): destroy() Surface(name=SurfaceView - com.learntoflutter.flutter_embed_unity_example/com.learntoflutter.flutter_embed_unity_example.MainActivity@c93b274@1[7029])/@0xb23b62a io.flutter.embedding.android.FlutterSurfaceView{c93b274 V.E...... ........ 0,0-720,1384}
D/ViewRootImpl@da5e15f[MainActivity]( 7029): Relayout returned: old=[0,0][720,1480] new=[0,0][720,1480] result=0x1 surface={valid=true 503242113024} changed=false
Update
Check the workaround in my comment further down.
Description
Since Flutter 3.22, Unity will crash on certain Android versions when ARFoundation is activated.
This only happens on Android <13.
This might also affect other unity plugins using native code, I just noticed it using ARFoundation.
In my own project Unity works fine for 3D scenes but crashes when I switch to a scene that includes ARFoundation.
In the example project here, Unity shows up with the Flutter logo but crashes once the AR support check runs.
Error in the console:
Looking up OnBackInvokedCallback, it is added in API 33 (android 13) and is related to the predictive back gesture in Android 14.
I'm not sure if this is a flutter bug where it sends some kind of message which it shouldn't on API <33, or if it is caused by Unity missing an implementation.
Error log
Full console log up to the crash
Flutter version
Crashed on:
Did not crash on:
Unity version
Only tested with:
2022.3.21f1, 2022.3.33f1
ArFoundation 5.1.2 and 5.1.4
Minimum reproducible example
flutter_embed_unityfolder from this repoexample_unity_2022_3_projectfolder from this repo.The only change applied to build the example was to change the android sdk to 34 in the gradle files.
Any project using AR with android <13 will likely work to trigger this.
Android devices
Devices without crash:
Devices with crash:
Some things I've tried
-keep class android.window.** { *; }-keep class android.window.OnBackInvokedCallback { *; }.android:enableOnBackInvokedCallback="false"to all androidmanifest activities and applications.implementation "androidx.activity:activity:1.6.0in gradle(OnbackInvokedCallback is mentioned in the changes.)