Cocos2D-x Eclipse java.lang.UnsatisfiedLinkError

问题描述 投票:1回答:2

我正在尝试建立我的第一个Hello World Cocos2D项目。我正在使用NDK r10e,并且已经导入了库。

[尝试使用Android 22进行构建时首先出现此错误,然后按照先前问题中的建议切换到Android 19,但并没有解决。我得到以下logcat:

07-13 16:04:30.416: E/AndroidRuntime(26892): FATAL EXCEPTION: main
07-13 16:04:30.416: E/AndroidRuntime(26892): Process: com.danielemolinari.HelloWorld, PID: 26892
07-13 16:04:30.416: E/AndroidRuntime(26892): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "srand" referenced by "libcocos2dcpp.so"...
07-13 16:04:30.416: E/AndroidRuntime(26892):    at java.lang.Runtime.loadLibrary(Runtime.java:365)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at java.lang.System.loadLibrary(System.java:526)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at org.cocos2dx.lib.Cocos2dxActivity.onLoadNativeLibraries(Cocos2dxActivity.java:207)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at org.cocos2dx.lib.Cocos2dxActivity.onCreate(Cocos2dxActivity.java:222)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.Activity.performCreate(Activity.java:5451)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.ActivityThread.access$900(ActivityThread.java:175)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.os.Handler.dispatchMessage(Handler.java:102)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.os.Looper.loop(Looper.java:146)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at android.app.ActivityThread.main(ActivityThread.java:5602)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at java.lang.reflect.Method.invokeNative(Native Method)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at java.lang.reflect.Method.invoke(Method.java:515)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
07-13 16:04:30.416: E/AndroidRuntime(26892):    at dalvik.system.NativeStart.main(Native Method)

有什么建议吗?

java android eclipse android-ndk cocos2d-x
2个回答
1
投票

编辑:已解决解决错误:

  1. 在Android SDK中安装Android 19平台
  2. 删除项目
  3. 创建一个新项目
  4. 使用Android 19编译

它可以在任何Android设备上使用,甚至可以在Lollipop上使用。


0
投票

对建议安装早期版本SDK的答案的评论:

没有必要。您既不需要更改工具链(在撰写本文时,NDK r9d而不是最新和最大的版本,r10e),也不需要更改目标(API 19,而不是最新和最大的版本,如今的API 23)。

将以下内容添加到您的应用程序Application.mk中就足够了:

APP_PLATFORM := android-<n> # where n is your target API
APP_ABI := <your target platforms, like armeabi-v7a, x86, etc.>

现实是,NDK和SDK的最新平台版本包含了较早版本的改进版本,如果您降级SDK(或NDK),则会为自己的平台成熟度设置上限,而您没有具有向后兼容性的同时无需这样做。

© www.soinside.com 2019 - 2024. All rights reserved.