Android JNI之——UnsatisfiedLinkError errordlopen failed: cannot locate symbol "rand"

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46593083

E/dalvikvm(19498): dlopen("/data/app-lib/com.mystylinglounge.salonluatest-2/libcocos2dlua.so") failed: dlopen failed: cannot locate symbol "rand" referenced by "libcocos2dlua.so"...

V/Trevor  (19498): UnsatisfiedLinkError errordlopen failed: cannot locate symbol "rand" referenced by "libcocos2dlua.so"...

https://code.google.com/p/android-developer-preview/issues/detail?id=168

gz-rios-mac05:proj.android mac05$ ndk-build -v

GNU Make 3.81

Copyright (C) 2006  Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

This program built for x86_64-apple-darwin

原来是对机器的位搞错了,,我的android 机器是32 位,但 应该下32 位的ndk

https://developer.android.com/tools/sdk/ndk/index.html

lAndroid NDK, Revision 10(July
2014)

Important changes:
  • Added 3 new ABIs, all 64-bit: arm64-v8a, x86_64, mips64. Note that:

    • GCC 4.9 is the default compiler for 64-bit ABIs. Clang is currently version 3.4.NDK_TOOLCHAIN_VERSION=clang may not work for arm64-v8a and mips64.
    • Android-L is the first level with 64-bit support. Note that this APIlevel is a temporary one, and only for L-preview. An actual API level number will replace it atL-release.
    • This release includes now includes all32 and all64settings forAPP_ABI.
      • APP_ABI=all32 is equivalent toAPP_ABI=armeabi,armeabi-v7a,x86,mips.
      • APP_ABI=all64 is equivalent toAPP_ABI=arm64-v8a,x86_64,mips64.
      • APP_ABI=all selects all ABIs.

虽然上面说的APP_ABI=ALL32 但其实指的是32bit 的NDK 包下午的编译选项,并不是说64bit NDK package 可以编译出32bit 的armeabi lib

时间: 2024-11-05 04:53:03

Android JNI之——UnsatisfiedLinkError errordlopen failed: cannot locate symbol "rand"的相关文章

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "srand" referenced by "libcocos2dcpp.so"...错误解决

在cocos2d-x 3.5中进行开发的时候,Android代码的编译可能会碰到如下错误:java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "srand" referenced by "libcocos2dcpp.so"... 解决这个问题的办法之一就是把ndk版本从r10d降为r9d,不过这并不是推荐的方法,因为r9d对C++ 11的正则表达式支持不够,以及一些其它的原因. 解决

[转]NDK编译库运行时报dlopen failed: cannot locate symbol "__exidx_end" 解决办法

原文链接:http://blog.csdn.net/acm2008/article/details/41040015 当用NDK编译的库在运行加载时报如下错: dlopen("/data/data/xxx.xxx.xxx/lib/libxxx.so") failed: dlopen failed: cannot locate symbol "__exidx_end" referenced by "libxxx.so"... 解决办法如下: 在你报

NDK编译库运行时报dlopen failed: cannot locate symbol "__exidx_end" 解决办法

当用NDK编译的库在运行加载时报如下错: dlopen("/data/data/xxx.xxx.xxx/lib/libxxx.so") failed: dlopen failed: cannot locate symbol "__exidx_end" referenced by "libxxx.so"... 解决办法如下: 在你报错的库libxxx.so的编译脚本Android.mk请加上:LOCAL_LDFLAGS += -fuse-ld=bf

NDK编译库执行时报dlopen failed: cannot locate symbol "__exidx_end" 解决的方法

当用NDK编译的库在执行载入时报例如以下错: dlopen("/data/data/xxx.xxx.xxx/lib/libxxx.so") failed: dlopen failed: cannot locate symbol "__exidx_end" referenced by "libxxx.so"... 解决的方法例如以下: 在你报错的库libxxx.so的编译脚本Android.mk请加上:LOCAL_LDFLAGS += -fuse-

【转】android JNI

原文网址:http://jinguo.iteye.com/blog/696185 Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Byt

[转载]—— Android JNI知识点

Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)

Ubuntu下编译Android JNI实例全过程

第一步:保证make和gcc可用 在shell中输入make-v,不报错就是对的.(可参考http://wenku.baidu.com/view/d87586c24028915f804dc24a.html.) 在shell中输入gcc-v,不报错就是对的. 第二步:安装NDK 下载NDK后,设置环境变量: 将android-ndk的路劲加到环境变量PATH中:sudogedit /etc/environment 然后再让这个更改的环境变量立即生效:source /etc/environment

Android JNI初体验

开始接触Android JNI层面的内容,推荐一本不错的入门级的书<Android的设计与实现:卷一>,这两天看了一下关于Java层和Native层函数映射的章节,加深对JNI的理解. 先是写了一个非常简单的计算器,关键的运算放在Native层实现,然后把运算的结果返回到Java层,写这个的时候还是自己手动建jni文件夹,javah的命令行,写makefile文件,用ndk-build命令行来编译,后来发现要调试C代码了,才发现高版本的ndk环境已经全都集成好了,编译,运行,调试甚至和VS差不

Android JNI知识简介

Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C.C++ 和汇编语言)编写的应用程序和库进行交互操作. 1.从如何载入.so档案谈起 由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)