我可以在我的设备 sm-j700m samsung Galaxy j7 2015 上运行 PUBG MOBILE(以及 LITE 版本)。
Pubg 使用虚幻引擎 4!
这里安装的UE4编辑器版本:4.26.2
在项目设置中有一个启用的选项“支持 OpenGL ES3.1”。
此链接中的一些引擎代码,准确显示了问题发生在 check() 处:
https://forums.unrealengine.com/t/4-25-apk-runs-fine-4-26-1-apk-crash/158698/4
static FORCEINLINE void ColorMaskIndexed(GLuint Index, GLboolean Red, GLboolean Green, GLboolean Blue, GLboolean Alpha)
{
if (bSupportsDrawBuffersBlend)
{
// ES 3.2 or extension
glColorMaskiEXT(Index, Red, Green, Blue, Alpha);
}
else
{
check(Index == 0);
glColorMask(Red, Green, Blue, Alpha);
}
}
以下是相关的崩溃日志(位于 /Phone/UE4Game/.../Saved/Logs)行:
[2021.08.13-23.50.57:859][ 0]LogAndroid: Default profile: Android_Default
[2021.08.13-23.50.57:859][ 0]LogAndroid: GpuFamily: Mali-T720
[2021.08.13-23.50.57:859][ 0]LogAndroid: GlVersion: OpenGL ES 3.1 v1.r7p0-03rel0.b8759509ece0e6dda5325cb53763bcf0
[2021.08.13-23.50.57:859][ 0]LogAndroid: VulkanAvailable: false
[2021.08.13-23.50.57:859][ 0]LogAndroid: VulkanVersion: 0.0.0
[2021.08.13-23.50.57:859][ 0]LogAndroid: AndroidVersion: 6.0.1
[2021.08.13-23.50.57:859][ 0]LogAndroid: DeviceMake: samsung
[2021.08.13-23.50.57:859][ 0]LogAndroid: DeviceModel: SM-J700M
[2021.08.13-23.50.57:859][ 0]LogAndroid: DeviceBuildNumber: MMB29K.J700MUBU2BRA1
[2021.08.13-23.50.57:860][ 0]LogAndroid: UsingHoudini: false
[2021.08.13-23.50.57:860][ 0]LogAndroid: Hardware: SAMSUNG Exynos7580
[2021.08.13-23.50.57:860][ 0]LogAndroid: Chipset: unknown
...
[2021.08.13-23.50.58:063][ 0]LogAndroid: VulkanRHI will NOT be used:
[2021.08.13-23.50.58:063][ 0]LogAndroid: ** Vulkan support is not available (Driver, RHI or shaders are missing, or disabled by cmdline, see above logging for details)
[2021.08.13-23.50.58:063][ 0]LogAndroid: ** Vulkan is disabled via console variable.
[2021.08.13-23.50.58:063][ 0]LogAndroid: OpenGL ES will be used.
[2021.08.13-23.50.58:063][ 0]LogAndroid: Vulkan SM5 is available but disabled for this device.
[2021.08.13-23.50.58:064][ 0]LogRHI: App is packaged for OpenGL ES 3.1 and an ES 3.1-capable device was detected.
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglPresentationTimeANDROID Present
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglGetNextFrameIdANDROID NOT Available
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglGetCompositorTimingANDROID NOT Available
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglGetFrameTimestampsANDROID NOT Available
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglQueryTimestampSupportedANDROID NOT Available
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglGetCompositorTimingSupportedANDROID NOT Available
[2021.08.13-23.50.58:069][ 0]LogRHI: Extension eglGetFrameTimestampsSupportedANDROID NOT Available
[2021.08.13-23.50.58:072][ 0]LogRHI: Initializing OpenGL RHI
[2021.08.13-23.50.58:072][ 0]LogRHI: GL_VENDOR: ARM
[2021.08.13-23.50.58:072][ 0]LogRHI: GL_RENDERER: Mali-T720
[2021.08.13-23.50.58:072][ 0]LogRHI: GL_VERSION: OpenGL ES 3.1 v1.r7p0-03rel0.b8759509ece0e6dda5325cb53763bcf0
[2021.08.13-23.50.58:072][ 0]LogRHI: GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.10
...
[2021.08.13-23.51.00:619][ 0]LogInit: First time updating LLM stats...
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error: === Critical error: ===
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error:
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error: Assertion failed: Index == 0 [File:/UnrealEngine/Engine/Source/Runtime/OpenGLDrv/Public/OpenGLES.h] [Line: 439]
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error:
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error: [Callstack] 0x00000000E0C73608 libUE4.so(0x000000000C122608)!FOpenGLDynamicRHI::RHIClearMRT(bool, int, FLinearColor const*, bool, float, bool, unsigned int) []
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error: [Callstack] 0x00000000E0C73354 libUE4.so(0x000000000C122354)!FOpenGLDynamicRHI::SetRenderTargetsAndClear(FRHISetRenderTargetsInfo const&) []
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error: [Callstack] 0x00000000E0CA3214 libUE4.so(0x000000000C152214)!FOpenGLDynamicRHI::RHIBeginRenderPass(FRHIRenderPassInfo const&, char16_t const*) []
[2021.08.13-23.51.00:910][ 0]LogAndroid: Error: [Callstack] 0x00000000DCDF3A10 libUE4.so(0x00000000082A2A10)!FRHICommand<FRHICommandBeginRenderPass, FRHICommandBeginRenderPassString1127>::ExecuteAndDestruct(FRHICommandListBase&, FRHICommandListDebugContext&) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DCD178BC libUE4.so(0x00000000081C68BC)!FRHICommandListExecutor::ExecuteInner_DoExecute(FRHICommandListBase&) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DCD74FB8 libUE4.so(0x0000000008223FB8)!FExecuteRHIThreadTask::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DCD746BC libUE4.so(0x00000000082236BC)!TGraphTask<FExecuteRHIThreadTask>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32> >&, ENamedThreads::Type) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DB5AAF8C libUE4.so(0x0000000006A59F8C)!FNamedTaskThread::ProcessTasksNamedThread(int, bool) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DB5A9508 libUE4.so(0x0000000006A58508)!FNamedTaskThread::ProcessTasksUntilQuit(int) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DCE01FB4 libUE4.so(0x00000000082B0FB4)!FRHIThread::Run() []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DB6A1970 libUE4.so(0x0000000006B50970)!FRunnableThreadPThread::Run() []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000DB5A4928 libUE4.so(0x0000000006A53928)!FRunnableThreadPThread::_ThreadProc(void*) []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000F74A7C8C libc.so(0x000000000003FC8C)![Unknown]() []
[2021.08.13-23.51.00:911][ 0]LogAndroid: Error: [Callstack] 0x00000000F74823AC libc.so(0x000000000001A3AC)![Unknown]() []
日志中还有其他内容可以帮助解决此问题吗?
因此“LogRHI:应用程序已针对 OpenGL ES 3.1 进行打包,并且检测到支持 ES 3.1 的设备。”意味着它应该可以正常工作吗?
按照建议(https://forums.unrealengine.com/t/4-25-apk-runs-fine-4-26-1-apk-crash/158698/7),我是否必须重新编译编辑器(在我的 4 核上花费了 +12 小时)删除该断言还是有一个创伤较小的选项?
您认为他们删除了 pubg mobile 的断言吗?
我看到有很多断言可能仅在 OpenGLES.h 上失败,所以我宁愿不修补引擎,除非这是唯一的选择,因为重新编译需要很长时间。
我在 UE4.27 上遇到了完全相同的问题。你成功解决了吗?还有希望吗???