【问题标题】:Unity: Could not allocate memory: System out of memory! Memorylabel TextureUnity:无法分配内存:系统内存不足!记忆标签纹理
【发布时间】:2018-01-20 01:33:05
【问题描述】:

我知道很多人都会遇到这个问题,但我很难解决这个问题。部分原因是这是我的第一个 Unity 游戏。

所以这是一个使用 Unity 5.5.2f1 的 2d Android 游戏,我在尝试构建时收到错误消息。请注意,尽管游戏已完成 95%,但这是我的第一次构建。我在构建 APK 上遇到了一段时间,所以我推迟了修复它。构建到 APK 中可以正常工作,但是当我运行游戏时,在介绍屏幕之后,应用程序崩溃并显示以下调试日志(检查中间的注释以了解崩溃发生的位置):

01-19 22:51:59.768: E/Unity(21604): 找不到 AudioPluginMsHRTF 01-19 22:51:59.769: E/Unity(21604): 找不到 AudioPluginOculusSpatializer 01-19 22:51:59.848: D/Unity(21604): GL_AMD_compressed_ATC_texture GL_AMD_performance_monitor GL_AMD_program_binary_Z400 GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_robustness GL_EXT_texture_format_BGRA8888 GL_EXT_texture_type_2_10_10_10_REV GL_NV_fence GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_depth24 GL_OES_EGL_image GL_OES_EGL_sync GL_OES_EGL_image_external GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_fragment_precision_high GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_depth_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_vertex_type_10_10_10_2 GL_OES_vertex_array_object GL_QCOM_alpha_test GL_QCOM_binning_control GL_QCOM_driver_control GL_QCOM_perfmon_global_mode GL_QCOM_extended_get GL_QCOM_extended_get2 GL_QCOM_tiled_rendering GL_QCOM_writeonly_rendering GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT 01-19 22:51:59.848: D/Unity(21604): _texture_sRGB_decode GL_EXT_texture_filter_anisotropic GL_EXT_multisampled_render_to_texture GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_disjoint_timer_query 01-19 22:52:00.564: W/Unity(21604): OnLevelWasLoaded 在 GameManager 01-19 22:52:00.564: W/Unity(21604): 此消息已 已弃用并将在更高版本的 Unity 中删除。 01-19 22:52:00.564: W/Unity(21604): 添加一个代理到 SceneManager.sceneLoaded 代替在场景后获取通知 加载已完成 01-19 22:52:00.564: W/Unity(21604): 01-19 22:52:00.564:W/Unity(21604):(文件名:行:382)

尝试从场景 0 过渡到场景 1 时

01-19 22:52:31.082:E/Unity(21604):无法分配内存:系统 内存不足! 01-19 22:52:31.082:E/Unity(21604):尝试分配: 327716B 16 对齐。记忆标签:纹理 01-19 22:52:31.082: E/Unity(21604): 分配发生在: Line:464 in 01-19 22:52:31.082: E/Unity(21604): 内存概览 01-19 22:52:31.082: E/Unity(21604): [ALLOC_DEFAULT] 使用: 10185997B |高峰:10217647B | 保留:10604339B 01-19 22:52:31.082:E/Unity(21604):[ ALLOC_TEMP_JOB ] 使用:0B |峰值:0B |保留:524288B 01-19 22:52:31.082:E/Unity(21604):[ALLOC_GAMEOBJECT] 使用:665219B | 峰值:665219B |保留:752068B 01-19 22:52:31.082:E/Unity(21604): [ ALLOC_GFX ] 使用:48855042B |高峰:50558706B |保留:48861160B 01-19 22:52:31.082: E/Unity(21604): [ALLOC_PROFILER] 使用: 0B | 峰值:0B |保留:0B 01-19 22:52:31.082:E/Unity(21604):[ ALLOC_TEMP_THREAD ] 使用:110072B |峰值:0B |保留:2719744B 01-19 22:52:31.082: E/Unity(21604): 01-19 22:52:31.082: E/Unity(21604):(文件名:行:996)

现在我做了以下事情: - 使介绍屏幕尽可能轻(起初我什至没有) -清空资源文件夹(将我的项目大小减半并提高构建速度,仅此而已) -OpenGLES 设置为 3(有人建议这样做)

(注意没有大于 1000x1000 的纹理)

正如我之前所说,这是我在 Unity 中的第一个项目。我不是世界上最好的程序员,但在过去的一年里,我设法把这个小 RPG 放在一起,我已经准备好真正完成并发布!我非常感谢任何人提供的任何建议!

干杯,

大安

【问题讨论】:

  • 注意:将场景从 0 到 1 更改为 0 到 2 仍会触发相同的警告。我必须补充一点,场景 1 和 2 非常相似。我还在每个游戏对象上添加了调试语句,以便在它们醒着但没有打印显示时打印。我这样做是为了找到有问题的游戏对象(如果有的话)但没有显示。顺便说一句,在统一编辑器中一切都很好。

标签: unity3d apk


【解决方案1】:

转到文件 > 构建设置并确保未选中仅构建脚本。

这已在 Unity 2018.3.7f1 中为我修复。

【讨论】:

    猜你喜欢
    • 2012-01-04
    • 2023-04-05
    • 1970-01-01
    • 2019-08-20
    • 2018-12-10
    • 1970-01-01
    • 2014-05-11
    • 2021-04-03
    • 1970-01-01
    相关资源
    最近更新 更多