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.
I visited the link CrystaX and download the ndk crystax source to check that function.
I found that some functions are used without definitions in android-ndk-r8-crystax-1\sources\crystax\src\stdio\local.h file and other files in crystax source, such as:
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
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