UnsatisfiedLinkError:无法加载cocos2dcpp:findLibrary返回null

时间:2014-05-20 10:42:12

标签: android c++ android-ndk cocos2d-x unsatisfiedlinkerror

我们在google play上收到了很多关于崩溃日志的崩溃报告:

java.lang.ExceptionInInitializerError
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1572)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1674)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3733)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:931)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load cocos2dcpp: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:429)
at java.lang.System.loadLibrary(System.java:554)
at com.xx.xxx.xxxx.<clinit>(xxxx.java:173)
... 15 more

此错误仅发生在 android版本2.3.3-2.3.7 的设备上。这似乎是一个常见的问题,但没有人有解决方案。有没有人解决过这个问题。

报告此问题的一些链接是:

http://www.cocos2d-x.org/forums/6/topics/45833

http://www.cocos2d-x.org/forums/6/topics/42570

提前致谢。

3 个答案:

答案 0 :(得分:4)

Couldn't load cocos2dcpp

这是主要应用程序的名称。 &#34; libcocos2dcpp.so&#34;

你可以在AndroidManifest.xml中找到它

<!-- Tell Cocos2dxActivity the name of our .so -->
    <meta-data android:name="android.app.lib_name"
              android:value="cocos2dcpp" />

另外,在proj.android/jni/Android.mk

LOCAL_MODULE_FILENAME := libcocos2dcpp

我猜您在Android.mk中更改了模块名称

答案 1 :(得分:3)

cocos2d-x的第三方库仅支持armeabi armeabi-v7a&amp; x86,但默认只有armeabi,当你向项目添加一些其他库时,它们可能不只是为armeabi构建,所以当你链接你的项目时,系统可能无法加载cocos2dcpp.lib。 要解决这个问题,只需看看你添加的新库支持什么样的abi并添加到你的application.mk中,就像..

APP_ABI:= armeabi armeabi-v7a x86

再次清理并重建。

答案 2 :(得分:1)

仅当您的项目未获得引用的库时才会出现此错误... 在从eclipse

运行之前,您是否首先使用build_native.sh/build_native.py编译项目