Mac で cocos2d-x v3.11 を使用し、Genymotion 仮想デバイスを使用しています。
私/jni/Application.mk
の中に、私は入れました、
APP_ABI :=armeabi armeabi-v7a
APP_ABI :=x86
しかし、常に同じエラーが発生NO_MATCHING_ABIS
し、genymotion でアプリが起動しません。
エラーログは必要ないかもしれませんが、ここにあります:
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
Eclipse エミュレーターは非常に遅く、複数デバイスの解像度テストにも Genymotion を使用する必要があります。
編集:
Eclipseを再起動した後に気付いた奇妙な問題。(Application.mk は変更しません)。を使用してプロジェクトをcocos compile -p android
ビルドすると、x86 のビルドが開始され、genymotion デバイスにインストールすると機能しましたが、実際のデバイスでは機能しませんでした。x86 を削除すると、 armeabi 用にビルドされました。ただし、両方の種類のデバイス (armeabi と x86) で同時に動作するわけではありません。
どうすれば解決できますか?