2010-09-05 185 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文件夹,以便您知道要查找它。