I’m trying to get myself set up to build a project for older android devices, currently using just the top down example map as a test and having no luck. I’ve confirmed that the map launches on a modern Huawei P30 lite running Android version 10 so i think i followed the steps for the android SDK correctly.
I have two old phones to deploy for, one Samsung Galaxy S3 mini running Android 4.1.2, and a Samsung Galaxy J5 running 6.0.1, which I believe and the most recent version of android that each device can run. The ideal outcome is i can build the game to run on both devices.
When trying to launch the map on the J5 it compiles and I get the first splash screen but then it quits to the home screen, whilst the ue4 console reads out an exception to do with OpenGLdrivers:
When trying to build to the S3 it tells me “the minimum SDK number is higher than the Android version installed on the device.”
I gathered from some reading that the first error is to do with the difference between the current OpenGL ES3.1 and the old 3.0, but no further info on how to fix it. With the S3 error I imagine i’d have to set my minimum version lower and also maybe point to some older version of the SDK instead but I have no idea.
Thanks for your response! - so I tried installing engine version 4.24 and followed some steps for installing codeworks to package to android for it. I get a successful build and now when trying to launch on the J5 I get an error message telling me that the app is packaged for OpenGL eS 3.1 but my device only supports ES2.
I get that I have to override the SDK and NDK API Levels in the 'Project SDK Override, section of the Project Settings but i’m not sure what I need to put there. I get that I need to put the API level of the OS i’m targeting in the SDK field, but for NDK i’m not so sure, is it android-xx and if so how to match the SDK number? Apologies if i’m being dense.
It may not be necessary to override the levels. In my setup, I am using “latest” in those fields. And the latest installed on my machine are SDK 30.0.3, NDK 23.0.75.
Google requires to target sdk level 30 to be able to publish. My target sdk version is 30 and the app works on lower levels, and even if I target level 28-29 it still packages. So, I think target sdk level doesn’t matter for packaging. On the other hand, Min SDK Version should be set to the lowest level you are expecting the app to run. Although the tooltip say not to set it lower than 19, I haven’t tested this.
Cool thanks. I don’t need to publish it to Google its only going on a few specific devices. I got it working on the J5 by unchecking the ‘support ES 3.1’ option and checking ‘support ES2’ instead. My minimum SDK is set to 9 and target set to 23. I tried changing the target to 16 to match the android number of the sm3 but it’s not displaying anything but a black screen and then quitting with a message that it stopped working. Will try to launch to it direct from the editor so i can see the log output.
Still looking for ES3 i think. Found this. A different engine but the guy who got that error says flashing his phone fixed it. But before that:
Edit: Game’s looking for ES3 libs because of a plugin requires it it seems. Check your plugins and disable anything related to VR, because OVR is OpenVR(?). similar problem solved here
OculusVR yeah, found it and disabled will try again now, if it’s still not working i’ll look into how to flash the phone - thanks so much for your help!
That fixed the errors in the engine console but it stills crashes just the same - looking through the logcat (thanks for the tip) and the main error seems to be:
so still OpenGl stuff I guess? the vast majority refer to this opengl.EGL14 thing so i’ll look into that. Maybe it’s also a bit much to get the sm3 to work…
Ah ok got you - i couldn’t find anything about it either. I’m pretty pleased I managed to get it working on the J5 so I might just abandon the sm3 for now. Thanks so much for your help!