I am using cocos2d-x v3.11 on mac and using Genymotion virtual devices.
In my /jni/Application.mk, I've put,
APP_ABI :=armeabi armeabi-v7a
APP_ABI :=x86
But always same error comes NO_MATCHING_ABIS and the app doesn't launch on the genymotion.
Though error log may not be needed but here it is:
D/dalvikvm( 1893): Late-enabling CheckJNI
I/ActivityManager( 587): Start proc org.company.numbergame for activity org.company.numbergame/org.cocos2dx.cpp.AppActivity: pid=1893 uid=10060 gids={50060, 3003}
D/dalvikvm( 1893): Trying to load lib /data/app-lib/org.company.numbergame-1/libMyGame.so 0xa4fe4688
E/dalvikvm( 1893): dlopen("/data/app-lib/org.company.numbergame-1/libMyGame.so") failed: dlopen failed: library "/system/lib/libhoudini.so" not found
D/AndroidRuntime( 1893): Shutting down VM
W/dalvikvm( 1893): threadid=1: thread exiting with uncaught exception (group=0xa4d17b20)
E/AndroidRuntime( 1893): FATAL EXCEPTION: main
E/AndroidRuntime( 1893): Process: org.company.numbergame, PID: 1893
E/AndroidRuntime( 1893): java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libhoudini.so" not found
E/AndroidRuntime( 1893): at java.lang.Runtime.loadLibrary(Runtime.java:364)
E/AndroidRuntime( 1893): at java.lang.System.loadLibrary(System.java:526)
E/AndroidRuntime( 1893): at org.cocos2dx.lib.Cocos2dxActivity.onLoadNativeLibraries(Cocos2dxActivity.java:246)
E/AndroidRuntime( 1893): at org.cocos2dx.lib.Cocos2dxActivity.onCreate(Cocos2dxActivity.java:260)
E/AndroidRuntime( 1893): at android.app.Activity.performCreate(Activity.java:5231)
E/AndroidRuntime( 1893): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
E/AndroidRuntime( 1893): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
E/AndroidRuntime( 1893): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
E/AndroidRuntime( 1893): at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime( 1893): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime( 1893): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 1893): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1893): at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime( 1893): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1893): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 1893): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime( 1893): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime( 1893): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 587): Force finishing activity org.company.numbergame/org.cocos2dx.cpp.AppActivity
D/dalvikvm( 587): GC_FOR_ALLOC freed 856K, 19% free 8972K/10964K, paused 11ms, total 11ms
D/MobileDataStateTracker( 587): default: setPolicyDataEnable(enabled=true)
W/ActivityManager( 587): Activity pause timeout for ActivityRecord{529f9534 u0 org.company.numbergame/org.cocos2dx.cpp.AppActivity t8 f}
W/EGL_genymotion( 763): eglSurfaceAttrib not implemented
D/MobileDataStateTracker( 587): default: setPolicyDataEnable(enabled=t
The eclipse emulators are really slow and I need to use Genymotion also for multi-device resolution testing.
EDIT:
A strange issue, I noticed after restarting eclipse. (I din't change my Application.mk). When I built project using cocos compile -p android
then it started building for x86 and worked when installed on genymotion device but didn't work for my actual devices. And when I removed x86 then it built for armeabi . But it doesn't work simultaneously on both kind of devices(armeabi and x86).
Does anyone know, how can I resolve it?
Genymotion works on x86 architecture. If you want to run an ARM build on genymotion then download the ARM translation and drop it on your genymotion emulator, then it will start accepting ARM build.