簡體   English   中英

Cocos2D-x Eclipse java.lang.UnsatisfiedLinkError

[英]Cocos2D-x Eclipse java.lang.UnsatisfiedLinkError

我正在嘗試構建我的第一個 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)

有什么建議嗎?

編輯:已解決 要解決錯誤:

  1. 在 Android SDK 中安裝 Android 19 平台
  2. 刪除項目
  3. 創建一個新項目
  4. 使用 Android 19 編譯

它適用於任何 Android 設備,甚至是 Lollipop。

對建議安裝較早版本 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),您就為自己的平台成熟度設置了上限,而您不會需要這樣做,同時具有向后兼容性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM