Android Jni调用so库,加载库失败分析

简介:

现有一个项目,通过JNI接口调用底层库,例如:lib***.so

如下所示,总是加载不成功。调试发现,每次加载so库,会跳到catch异常处理部分,然后打印异常log信息。

static{  
	try{
		System.load("/data/data/com.***/lib/lib***.so");
	}  
	catch(UnsatisfiedLinkError ulink){ 
		Log.i("HVnative====","Can not load library");
		ulink.printStackTrace();
	}
}


arm-none-linux-gnueabi-ld工具发现有些函数未定义,如下所示:

snowdream@snowdream:~/workspace/$ arm-none-linux-gnueabi-ld lib***.so
arm-none-linux-gnueabi-ld: warning: libc.so, needed by lib***.so, not found (try using -rpath or -rpath-link)
arm-none-linux-gnueabi-ld: warning: libdvm.so, needed by lib***.so, not found (try using -rpath or -rpath-link)
lib***.so: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
arm-none-linux-gnueabi-ld: warning: cannot find entry symbol _start; defaulting to 00008248
lib***.so: undefined reference to `__aeabi_fadd'
lib***.so: undefined reference to `__aeabi_fdiv'
lib***.so: undefined reference to `__aeabi_fcmpge'
lib***.so: undefined reference to `__aeabi_dcmpgt'
lib***.so: undefined reference to `__aeabi_dcmpeq'
lib***.so: undefined reference to `__aeabi_uidiv'
lib***.so: undefined reference to `__aeabi_ui2d'
lib***.so: undefined reference to `__aeabi_dcmple'
lib***.so: undefined reference to `__aeabi_fcmplt'
lib***.so: undefined reference to `__aeabi_i2d'
lib***.so: undefined reference to `__aeabi_uidivmod'
lib***.so: undefined reference to `__aeabi_fmul'
lib***.so: undefined reference to `__aeabi_d2uiz'
lib***.so: undefined reference to `__aeabi_fcmpeq'
lib***.so: undefined reference to `__aeabi_d2iz'
lib***.so: undefined reference to `__aeabi_dcmpge'
lib***.so: undefined reference to `__aeabi_ldivmod'
lib***.so: undefined reference to `__aeabi_d2f'
lib***.so: undefined reference to `__aeabi_dmul'
lib***.so: undefined reference to `__aeabi_dcmplt'
lib***.so: undefined reference to `__aeabi_f2d'
lib***.so: undefined reference to `__aeabi_fcmple'
lib***.so: undefined reference to `__aeabi_idivmod'
lib***.so: undefined reference to `__aeabi_fsub'
lib***.so: undefined reference to `__aeabi_ddiv'
lib***.so: undefined reference to `__aeabi_ui2f'
lib***.so: undefined reference to `__aeabi_i2f'
lib***.so: undefined reference to `__aeabi_idiv'
lib***.so: undefined reference to `__aeabi_dadd'
lib***.so: undefined reference to `__aeabi_fcmpgt'
lib***.so: undefined reference to `__aeabi_dsub'
lib***.so: undefined reference to `__aeabi_f2iz'


如果“ undefined reference to” 后面打印的函数是:
1、 你自己写的函数,那么你应该去检查自己所写的这段代码有何问题,修改之后,再重新编译底层库;

2、系统函数,暂时还没找到合适的解决办法,正在努力寻求方法。


相关文章
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1629 4
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
693 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
1012 15
Android 系统缓存扫描与清理方法分析
|
安全 Android开发 数据安全/隐私保护
深入探索Android与iOS系统安全性的对比分析
在当今数字化时代,移动操作系统的安全已成为用户和开发者共同关注的重点。本文旨在通过比较Android与iOS两大主流操作系统在安全性方面的差异,揭示两者在设计理念、权限管理、应用审核机制等方面的不同之处。我们将探讨这些差异如何影响用户的安全体验以及可能带来的风险。
1098 21
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文深入探讨了这两个平台的开发环境,从编程语言、开发工具到用户界面设计等多个角度进行比较。通过实际案例分析和代码示例,我们旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和个人偏好做出明智的选择。无论你是初涉移动开发领域的新手,还是寻求跨平台解决方案的资深开发者,这篇文章都将为你提供宝贵的信息和启示。
302 8
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
493 1
|
8月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1568 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1075 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章