Download

Game crash on Android-L firmware (problems with libcrystax.a)

Hi there,

I have a problem when run game on new firmware Android-L, game crash when launch game.
Game can runable on others firmware.

Here is the error logs:
08-05 11:23:06.472: E/AndroidRuntime(6901): FATAL EXCEPTION: Thread-421
08-05 11:23:06.472: E/AndroidRuntime(6901): Process: com.gameloft.android.ANMP.GloftWBHM, PID: 6901
08-05 11:23:06.472: E/AndroidRuntime(6901): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “__swsetup” referenced by “libUnrealEngine3.so”…
08-05 11:23:06.472: E/AndroidRuntime(6901): at java.lang.Runtime.load(Runtime.java:333)
08-05 11:23:06.472: E/AndroidRuntime(6901): at java.lang.System.load(System.java:596)
08-05 11:23:06.472: E/AndroidRuntime(6901): at com.gameloft.android.ANMP.GloftWBHM.Game.loadAlternativeLib(Unknown Source)
08-05 11:23:06.472: E/AndroidRuntime(6901): at com.gameloft.android.ANMP.GloftWBHM.Game.loadLib(Unknown Source)
08-05 11:23:06.472: E/AndroidRuntime(6901): at com.gameloft.android.ANMP.GloftWBHM.installer.GameInstaller.run(Unknown Source)
08-05 11:23:06.472: E/AndroidRuntime(6901): at java.lang.Thread.run(Thread.java:818)
08-05 11:23:06.473: I/am_crash(576): [6901,0,com.gameloft.android.ANMP.GloftWBHM,8961092,java.lang.UnsatisfiedLinkError,dlopen failed: cannot locate symbol “__swsetup” referenced by “libUnrealEngine3.so”…,Runtime.java,333]

The game use:
ANDROID_NDK = android-ndk-r7
Android_ndk_platform = android-8

I occurs because the game can not locate symbol “__swsetup” on the lib libcrystax.a which is linked into “libUnrealEngine3.so”.
I try to unlink the libcrystax.a from the “libUnrealEngine3.so” and found that the game can load lib successfully.

Because the game need the crystax lib but I don’t have any solutions to fix this issue at this time.

Did anyone meet it?
How can I get/modify the crystax lib to support Android-L firmware?

If you have any ideas about this, Could you please help me?

Thanks a lot,
Nam

Try to update your Android SDK

Would you tell us about your specs of windows sofware and the patch od Windows, some times the crash is coming any things

Hi dongmuctim,

Please make this a post in the bug reports section of the answerhub at http://answers.unrealengine.com so we can further assist you. Thank you!

Hello,

I search on internet and find some info here:
Crystax was a modified NDK, which was used back before NDKr5c, to add STL support. As far as I can see, it is still an improved NDK… although it is based on the r8: https://www.crystax.net/android/ndk.php
I visited that link and download the ndk crystax source.

I found that some functions are used without definitions in android-ndk-r8-crystax-1\sources\crystax\src\stdio\local.h file:
extern int __swsetup(FILE *);
extern int __sflags(const char *, int *);
extern void __smakebuf(FILE *);

On android-L firmware, the game can not understand those functions, but on other firmware, the game can run normally.
I try to define those function with empty body in my source and the game is runable on Android-L firmware.

I don’t know why those functions are passed in other firmware of android (4.4 and older firmware), and failed in Android-L
Can anyone help me to build the crystax.a lib again with definition of those functions.

Thanks a lot,
Nam

Hi Adam,

I have made a post in your suggestion link (Game crash on Android-L firmware (problems with libcrystax.a) - UE4 AnswerHub)

Thanks for your support.
Nam