一、 报错信息一览
-
(1) [EGL] Unable to acquire context:
E Unity : [EGL] Unable to acquire context: EGL_BAD_SURFACE: An EGLSurface argument does not name a valid surface (window, pixel buffer or pixmap) configured for GL rendering.
解决办法:多线程渲染争用,所以包这个错误,关闭多线程渲染。
-
(2) GL_OUT_OF_MEMORY
Not enough memory left to execute command
解决办法:GC或者性能问题,脚本后台改为IL2CPP试试
另外不要勾选实验性的垃圾回收策略【Use incremental GC】
-
(3) E Unity : [./Runtime/GfxDevice/opengles/GfxDeviceGLES.cpp line 449]
盲猜是图形接口Graphics Api设置有问题
-
(4)Build失败:processing gradle project failed with exception:sharing violation on path
猜测是多次build,文件被锁。
重启Unity工程,如果还有问题就重启电脑
二、修改配置
1、多线程渲染(Multithreaded Rendering):关闭
2、Graphics Jobs:关闭,它本身就是实验性质的
3、图形接口Graphics APIs设置:勾选为Auto Graphics API
4、脚本后台Scripting Backend:设置为【IL2CPP】
也许能提高一点电性能,只是猜测,没有测试数据。
5、Api兼容性设置为:【.NET 4.X】
这一个不知道有没有用,没有测试数据。
6、部署的硬件框架设置
勾选【ARMv7】和【ARMv64】
可能不需要勾选,没有详细测试对比
7、实验性的垃圾回收策略
另外不要勾选实验性的垃圾回收策略【Use incremental GC】,该策略与传统策略的对比,请自行搜索。