You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity打包Android应用出现黑屏问题求助

Unity Android应用黑屏问题分析与解决方案

应用已上线多年,近期线上版本及本地打包的空场景(仅绿色背景)均出现启动后黑屏问题,以下是Logcat日志分析:

04-09 12:34:18.101 24372 24399 D Unity   : Started listening to [0.0.0.0:55461] 
04-09 12:34:18.137 24372 24399 D Unity   : InitializeScriptEngine OK (0x73f267cfc0) 
04-09 12:34:18.137 24372 24399 D Unity   : PlayerConnection already initialized - listening to [0.0.0.0:55461] 
04-09 12:34:18.151 24372 24399 D Unity   : PlayerInitEngineNoGraphics OK 
04-09 12:34:18.151 24372 24399 D Unity   : AndroidGraphics::Startup window =  0x7340241010 
04-09 12:34:18.151 24372 24399 D Unity   : [EGL] Attaching window :0x7340241010 
04-09 12:34:18.163 24372 24399 D Unity   : [EGL] Request: ES 3.1+AEP RGB0 000 0/0 
04-09 12:34:18.163 24372 24399 D Unity   : [EGL] Checking ES 3.1 support... 
04-09 12:34:18.165 24372 24399 D Unity   : [EGL] ES 3.1 support detected 
04-09 12:34:18.165 24372 24399 D Unity   : [EGL] Found: ID[5] ES 3.1+AEP RGB16 565 0/0 
04-09 12:34:18.165 24372 24399 D Unity   : [EGL] Request: ES 3.1+AEP RGB0 000 0/0 
04-09 12:34:18.165 24372 24399 D Unity   : [EGL] Found: ID[5] ES 3.1+AEP RGB16 565 0/0 
04-09 12:34:18.165 24372 24399 D Unity   : [EGL] Request: ES 3.0 RGBA32 8888 0/0 
04-09 12:34:18.165 24372 24399 D Unity   : [EGL] Found: ID[1] ES 3.0 RGBA32 8888 0/0 
04-09 12:34:18.167 24372 24399 D Unity   : ANativeWindow: (2000/1200) RequestedResolution: (0/0) RenderingResolution: (0/0) EGLSurface: (2000/1200) 
04-09 12:34:18.173 24372 24399 D Unity   : Renderer: Mali-G72 
04-09 12:34:18.173 24372 24399 D Unity   : Vendor:   ARM 
04-09 12:34:18.173 24372 24399 D Unity   : Version:  OpenGL ES 3.2 v1.r38p1-01bet0-mbs2v41_0.49c562ebe5faf1a47d2b8e7043cf01b0 
04-09 12:34:18.173 24372 24399 D Unity   : GLES:     3 
04-09 12:34:18.173 24372 24399 D Unity   :  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_ 
04-09 12:34:18.173 24372 24399 D Unity   : 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 
04-09 12:34:18.173 24372 24399 D Unity   : 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_unpack_subimage 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 GL_ARM_texture_unnormalized_coordinates GL_EXT_shader_framebuffer_fetch 
04-09 12:34:18.179 24372 24399 D Unity   : OPENGL LOG: Creating OpenGL ES 3.2 graphics device ; Context level  <OpenGL ES 3.1 AEP> ; Context handle -1198367616 
04-09 12:34:18.180 24372 24399 D Unity   : [EGL] Attaching window :0x7340241010 
04-09 12:34:18.184 24372 24399 D Unity   : Requested framebuffer: resolution[2000x1200], rgba[8/8/8/8], depth+stencil[on], samples[1] 
04-09 12:34:18.184 24372 24399 D Unity   : Created framebuffer: resolution[2000x1200], rgba[8/8/8/8], depth+stencil[24/8], samples[0] 
04-09 12:34:18.184 24372 24399 D Unity   : [EGL] Attaching window :0x7340241010 
04-09 12:34:18.184 24372 24399 D Unity   : Initialize engine version: 2018.4.9f1 (ca372476eaba) 
04-09 12:34:18.335 24372 24399 D Unity   : PlayerInitEngineGraphics OK 
04-09 12:34:18.339 24372 24399 D Unity   : Found 26 native sensors 
04-09 12:34:18.342 24372 24399 D Unity   : Sensor :        Accelerometer ( 1) ; 0.002394 / 0.00s ; ICM42605M Accelerometer / TDK Invensense 
04-09 12:34:18.343 24372 24399 D Unity   : Sensor :        Accelerometer ( 1) ; 0.002394 / 0.00s ; ICM42605M Accelerometer / TDK Invensense 
04-09 12:34:18.351 24372 24399 D Unity   : SetWindow 0 0x7340241010 
04-09 12:34:18.351 24372 24399 D Unity   : [EGL] Attaching window :0x7340241010 
04-09 12:34:20.403 24372 24399 D Unity   : UnloadTime: 1.192000 ms 
04-09 12:34:20.411 24372 24399 D Unity   : UUID: b50a556472eb151f => 95e54368980bfd2aff5fbafa73eafc28 
04-09 12:34:20.434 24372 24399 D Unity   : Sensor :        Accelerometer ( 1) ; 0.002394 / 0.00s ; ICM42605M Accelerometer / TDK Invensense 
04-09 12:34:20.445 24372 24399 D Unity   : Choreographer available: Enabling VSYNC timing 
04-09 12:34:50.886 24372 24372 I Unity   : onPause 
04-09 12:34:54.888 24372 24372 W Unity   : Timeout while trying to pause the Unity Engine. 
04-09 12:34:58.939 24372 24372 W Unity   : Timeout while trying detaching primary window. 
04-09 12:34:58.974 24372 24372 I Unity   : windowFocusChanged: false

问题定位

从日志看,Unity引擎的图形初始化流程完全正常:

  • InitializeScriptEngine OK、PlayerInitEngineNoGraphics OK、PlayerInitEngineGraphics OK 表明引擎核心和图形模块启动成功
  • OpenGL ES 3.2上下文创建完成,EGL窗口绑定正常,帧缓冲区也正确生成

关键异常点是日志末尾的两个警告:

  • Timeout while trying to pause the Unity Engine
  • Timeout while trying detaching primary window

这说明应用启动后,系统触发了onPause事件,但Unity引擎无法在规定时间内完成暂停操作,导致窗口渲染被阻塞,最终显示黑屏。结合空场景也黑屏的情况,排除项目内容问题,大概率是Unity版本(2018.4.9f1)与最新Android系统/Google Play服务的兼容性冲突——老版本Unity的Android适配逻辑无法处理新系统的生命周期回调机制。

解决方案

  • 升级Unity版本:将项目升级到2018.4.x的最新补丁版本(2018.4.36f1及以上),Unity官方在后续补丁中修复了大量Android系统兼容性问题,尤其是生命周期回调的超时问题。
  • 修改AndroidManifest配置:在<activity>标签中添加android:configChanges="orientation|screenSize|keyboardHidden|layoutDirection",减少系统触发生命周期回调的频率;同时确保android:launchMode="singleTask",避免多实例导致的窗口冲突。
  • 禁用不必要的系统服务:在Player Settings中关闭不需要的传感器支持,减少引擎初始化时的系统交互。
  • 测试不同Android版本:在多个Android版本(尤其是Android 12+)的设备上测试,确认是否是特定系统版本的问题,针对性调整适配策略。

内容的提问来源于stack exchange,提问作者daniel zastrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 18:59:51