cannot locate symbol "rand" referenced by "libUE4.so"

Hi,

So I packaged our game and uploaded it for alpha testing to the android play store.
I got a PRE-LAUNCH REPORT from google that says that 8 devices have problems running the game with a crash on loading.
These devices are all android 4.4. I have build the game with Minimum and target sdk versions set to 9, so 4.4 should be supported right?

This is the error I received on multiple devices:


FATAL EXCEPTION: main
 Process: com.basecampgames.LineBlazers, PID: 11307
 java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "rand" referenced by "libUE4.so"...
 	at java.lang.Runtime.loadLibrary(Runtime.java:364)
 	at java.lang.System.loadLibrary(System.java:533)
 	at com.epicgames.ue4.GameActivity.<clinit>(Unknown Source)
 	at java.lang.Class.newInstanceImpl(Native Method)
 	at java.lang.Class.newInstance(Class.java:1208)
 	at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2348)
 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
 	at android.app.ActivityThread.access$800(ActivityThread.java:153)
 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
 	at android.os.Handler.dispatchMessage(Handler.java:102)
 	at android.os.Looper.loop(Looper.java:157)
 	at android.app.ActivityThread.main(ActivityThread.java:5633)
 	at java.lang.reflect.Method.invokeNative(Native Method)
 	at java.lang.reflect.Method.invoke(Method.java:515)
 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:896)
 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:712)
 	at dalvik.system.NativeStart.main(Native Method)

With one of the log files added as an attachment.

Does anyone know what is causing the issue? I am using Ue4 4.10.4

Thanks in advance!

Hi @SoulRyder,

This can happen if you set the NDK API level (in Android SDK project settings) to 21 or higher and try to run on pre-Lollipop devices. Set it to android-19.

Ok thanks a lot!

android-19 works fine now, but setting it lower will create an error during building. Is this not possible? I tried installing older sdks, but after installing some extra older stuff in the sdk manager building would not work at all anymore. So then I had to re-install all android stuff to get it working again. I installed a full androidworks install, but lower then android-19 I cannot seem to get it working. If this is not supported it’s not a huge problem but it would be nice to be able to build at least to android 4.0

You shouldn’t set the NDK or SDK API level lower than android-19. This just sets the definitions not the requirements. The Minimum SDK setting in Android project settings will restrict installs on older versions. It defaults to 9, but you can change this to 14 for Android 4.0. The code checks which version the device is running before using any features not available so you don’t need to worry about it.