首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JNI_OnLoad在android libmono.so失败

JNI_OnLoad在android libmono.so失败
EN

Stack Overflow用户
提问于 2012-09-06 11:11:33
回答 1查看 3.7K关注 0票数 3

我的工作是android框架移植。

我有很多第三次APK不能在我的Android果冻豆上运行。(它们都是libmono.so的链接器)

在运行时,它们都在JNI_OnLoad()函数libmono.so中失败。下面是我的错误日志和分析。

//1. Android native.cpp ( dvmLoadNativeCode(){ ...dlopen().})

代码语言:javascript
复制
**D/dalvikvm(2629): Added shared lib /data/data/pl.idreams.jellydefense/lib/libmono.so 0xaed3a578**

//2. Android链接器加载libmono.so并返回JNI_OnLoad函数地址// Android native.cpp ( dvmLoadNativeCode(){ ...dlsym(句柄,“JNI_OnLoad”).})

代码语言:javascript
复制
**D/linker(2629): TRACE:  1252 SEARCH JNI_OnLoad in libmono.so@0xa5cf9000 0467e784 86**
**D/linker(2629): TRACE:  1252 FOUND JNI_OnLoad in libmono.so (0000a3a4) 340**

//3. Android native.cpp ( dvmLoadNativeCode(){ ..version = (*func)(gDvmJni.jniVm,NULL);..}) //执行JNI_OnLoad函数并返回JNI版本,libmono转储在错误消息下面

代码语言:javascript
复制
**E/linker(2629): ERROR: OOPS:     0 cannot map library 'libmono.so'. no vspace available.**

//4. libmono返回JNI版本=0

代码语言:javascript
复制
**W/dalvikvm(2629): JNI_OnLoad returned bad version (0) in /data/data/pl.idreams.jellydefense/lib/libmono.so 0xaed3a578**

有人能告诉我为什么JNI_OnLoad在Libmono.so?上失败了吗?

JNI_OnLoad在Libmono.so做什么?(我是否丢失了某些模块或共享库?)

非常感谢,金库

EN

回答 1

Stack Overflow用户

发布于 2012-09-06 11:27:48

看起来你的应用程序试图分配太多的内存,而Android已经够了。原因不一定是您的libmono.so (或者加载它的类,尽管它们可能是罪魁祸首),它恰好发生在加载该库期间。

本机库的JNI_OnLoad()函数返回一个JNI版本以表示它能够继续,如果它确定不能继续,则返回0。它看起来是一个失败的分配导致它返回0,以表示它不能初始化,因此不能使用。

至于“无法映射库‘libuni.so’,没有vspace可用。”--这是一个开源项目,对吗?我可以想象,您将毫不费力地找到JNI_OnLoad源代码来自己回答这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12298790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档