2010-09-05 193 views
0

編譯JNI時出現問題。它返回錯誤消息,如 「arm-eabi/bin/ld:can not find -landroid_runtime」。 我認爲libandroid_runtime.so是android自己的lib。爲什麼ld找不到 庫。有人可以幫助我嗎? 我的開發環境如下: 操作系統:Ubuntu 9.10的 SDK:Android2.2的 NDK:R4Bandroid ndk:無法找到android_runtime

+0

什麼是你的ndk項目的佈局和配置,比如Android.mk?你可以建立hello-jni樣本嗎? – qrtt1 2010-10-03 02:37:17

回答

1

libandroid_runtime.so其實Android系統的圖書館之一,因此不適用於NDK應用。

檢查文件docs/STABLE-APIS.txt獲取支持的庫列表,或者更好的檢查文件夾build/platforms/android - #/ arch-arm/usr/lib其中#是Android平臺級別,您可以鏈接的庫的權威列表。

正如他們所說的NDK名單,即使你設法對其他Android庫的一個鏈接,它可能將無法​​正常工作的一些(甚至可能是大多數)的手機,即使它的工作原理上你正在測試的一個。

+0

謝謝!我已經解決了這個問題,libandroid_runtime.so可以在AVD/system/lib中找到 – 2010-12-18 02:51:19

+1

不,你沒有解決問題。你推遲了這個問題。當您使用NDK附帶的標題或庫時,您將視未來Android版本的功能而定 - 這意味着您的應用程序可能會在沒有任何警告的情況下突然中斷。請不要對你自己做這件事。 – 2011-08-16 17:45:59

1

爲了解決您的問題,建立一個可能的每個Android的模擬,併爲每個Android重新編譯一個版本,並將其與具體的兼容性在市場上。編輯:嘗試使用:adb pull/system/lib
編輯2:在/ lib中也應該有一個egl文件夾,以便您知道要查找它。