首页,感谢你的阅读,本人观点:学习编程是个漫长的过程并不是一时就会很厉害的,关键是坚持,快乐地学习,在这里分享我的一些笔记给你;
最近在做Android上的多媒体开发,通过JNI接口调用各种底层库,例如:lib***.so
如下所示,总是加载不成功。调试发现,每次加载so库,会跳到catch异常处理部分,然后打印异常log信息。
1.static{
2. try{
3. System.load("/data/data/com.***/lib/lib***.so");
4. }
5. catch(UnsatisfiedLinkError ulink){
6. Log.i("HVnative====","Can not load library");
7. ulink.printStackTrace();
8. }
9.}
发现网上可以用arm-none-linux-gnueabi-ld工具分析这个动态库,在ubuntu 10.04上安装arm-none-linux-gnueabi-gcc
方法参考文档:
http://blog.csdn.net/satiling/article/details/6914466
找到 arm-none-linux-gnueabi-ld执行程序,添加到系统环境变量:
1.vim /root/.bashrc
2.PATH=$PATH:绝对路径
3.source /root/.bashrc 使环境变量立即生效,分析工具搞定!
如果“undefined reference to” 后面打印的函数是:
1、你自己写的函数,那么你应该去检查自己所写的这段代码有何问题,修改之后,再重新编译底层库;
2、系统函数,暂时还没找到合适的解决办法,自己上网度狗吧,正在努力寻求方法。
知识就是力量,别人学用知识来赚钱的成本低,在达内学习到编程是铸造梦想的地方,如果你喜欢编程,这里,有我们共同语言,共同的故事,共同的梦想!
(责任编辑:广州达内http://tarena3g.com.cn)
分享到:
相关推荐
在Android平台上进行Qt开发时,有时我们需要调用C++库来扩展功能,这些...通过以上步骤,你应该能够在Qt for Android项目中成功地调用静态库和动态库。记得在开发过程中进行充分的测试,确保在不同设备上都能正常运行。
在Android应用开发中,动态库(Dynamic Library)是不可或缺的一部分,它们主要用于提供底层的C/C++代码支持,处理性能敏感或跨平台的任务。"Android-android动态库远程依赖"这一主题聚焦于如何在Android项目中引入...
这个"FFmpeg4.0_android版动态库和头文件.zip"压缩包提供了FFmpeg4.0版本针对Android平台的预编译动态库和相关的头文件,使得开发者能够在Android NDK环境中快速集成和使用FFmpeg。 1. **FFmpeg简介**:FFmpeg是一...
Android系统使用共享库(.so文件)作为动态库,这些库是用C或C++编译的,可以在运行时被多个进程加载和使用。在Java层,我们可以通过Java Native Interface (JNI)来调用C++代码,实现与动态库的交互。 该项目的实现...
在Java代码中,你可以通过`System.loadLibrary("x264")`加载动态库,然后通过`javah`命令生成对应的JNI头文件,最后调用这些C函数进行实际操作。 综上所述,将x264编译为Android动态库涉及的关键技术包括:NDK编译...
3. **错误处理**:加载过程中可能会出现找不到库文件或加载失败等问题,需要进行异常处理,确保应用的健壮性。 在实际项目中,动态加载.so文件还需要注意以下几点: - **权限设置**:如果.so文件位于APK外部,如SD...
《curl7.79.0最新Android版动态库详解》 在移动开发领域,尤其是在Android平台上,集成外部库是常见的需求。"curl7.79.0最新Android版动态库"是一个针对Android平台优化的网络通信库,它为开发者提供了强大的HTTP...
总之,FFmpeg 4.3.5 Android 动态库提供了强大的音视频处理能力,适用于需要在 Android 应用中进行音视频处理的各种场景。开发者需要了解如何集成和使用 FFmpeg API,同时关注性能优化和版权问题,以确保应用的稳定...
在Android平台上进行OpenCV 3.0开发时,你需要确保正确地集成和使用适用于不同架构的动态库。OpenCV是一个开源计算机视觉库,它包含了众多用于图像处理和计算机视觉算法的功能,广泛应用于图像分析、人脸识别、物体...
unity-调用动态库so-android篇, so示例制作,ndk-build生成so动态库, unity调用so动态库
在应用运行时,静态库会被编译进最终的APK,而动态库会作为单独的文件打包,并在运行时由Android系统加载。 总结,通过Android Studio和CMake,开发者可以方便地管理C/C++原生代码,链接静态库和动态库,实现跨平台...
3. 构建动态库:对于动态库,同样使用ndk-build,但需要注意的是,Android的动态库不支持软链接,这意味着你需要为每个支持的CPU架构(armeabi, armeabi-v7a, arm64-v8a, x86, x86_64等)编译不同的.so文件,并在...
综上所述,Android中的ViewPager动态加载涉及多个层面,包括适配器的定制、滑动事件监听、性能优化以及图片加载库的集成。理解并熟练掌握这些知识点,能够帮助开发者构建出高效且用户体验优秀的滑动页面应用。
本篇文章将详细讲解如何在Android环境中编译OpenSSL静态库(.a)和动态库(.so)。 首先,你需要下载OpenSSL的源代码。在这个案例中,我们有一个名为`openssl-android-master`的压缩包,这是OpenSSL的一个Android适配...
6. **异常处理**:动态加载过程中可能会遇到各种问题,如找不到类或库,所以需要有完善的异常处理机制。 在提供的文件列表中,我们看到`gradlew.bat`和`gradlew`是Gradle的脚本,用于构建项目。`build.gradle`和`...
Android原生系统虽然支持静态图像的显示,但对GIF的支持并不完善,因此开发者需要借助第三方库来实现GIF的加载和播放。本篇文章将深入探讨"android GIF加载库"这一主题,以及如何使用这些库来优化Android应用中的GIF...
- **动态库**:动态库在运行时由系统加载,多个应用可以共享同一份库,节省内存。但需要确保目标设备上安装了相应的库文件,否则程序无法运行。 - **静态库**:静态库在编译时会将库代码直接合并到应用程序中,生成...
本知识点将详细介绍如何使用Android Studio、CMake以及NDK进行动态库的开发。 1. **Android Studio与CMake的结合** Android Studio从3.0版本开始支持CMake作为原生代码的构建工具,替代了之前使用的ndk-build。...
总之,FFmpeg 7.0 安卓静态库和动态库的提供,使得开发者能够在 Android 应用中轻松处理音视频任务,实现各种复杂的多媒体功能。不过,正确集成和使用 FFmpeg 需要对 Android NDK 开发和音视频处理有深入理解。
在Android开发中,处理GIF动图是一项常见的需求,无论是用于加载网络表情、动画背景还是游戏中的动画元素,GIF的动态加载都是开发者必须掌握的技术之一。本示例"Android GifAndroidDemo动态加载"专注于讲解如何在...