`
hcleon
  • 浏览: 266240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 打包.so到apk

阅读更多
1,首先在Android.mk文件加入下面的设置,说明要调用的so库。
LOCAL_JNI_SHARED_LIBRARIES := libxxx \
                              libyyy \

2,在应用的目录下手工建libs/armeabi目录,然后把libxxx.so, libyyy.xo拷贝到这个目录下。

3, 在代码里,使用System.loadLibrary("xxx");就可以加载这个动态库了。
这里要注意,参数只写xxx就可以了,不需要写libxxx,也不需要写libxxx.so。

还有一点要说明,System.loadLibrary这个函数会在如下路径搜索libxxx.so文件:
/system/lib
/data/data/you apk package/lib

但,如果libxxx.so还依赖其它.so文件,比如libyyy.so,则System.loadLibrary只会
在/system/lib目录下去找,如果没找到,它不会自动到/data/data/you apk package/lib下去找,这个时候就会报动态库没找到的错;

解决方法是在load libxxx.so之前,先load libyyy.so,如下:
System.loadLibrary("yyy");
System.loadLibrary("xxx");

4,用adb install 安装apk后,这些库会放在 /data/data/youapk/lib/目录下。
分享到:
评论

相关推荐

    Android Studio打包.so库到apk中实例详解

    Android Studio打包.so库到apk中实例详解 由于在原来的ADT的Eclipse环境中,用ndk_build工具生成了相应的各个.so库文件之后,eclipse工具就会自动把这些库导入到apk中。而Android Studio目前为止(1.1.0版本)还无法...

    Android.mk编译内置无源码apk

    接着,当你运行Android构建系统(通常是`mm`或`mm -jN`命令,其中`N`代表处理器核心数量),`wukong.apk`将被打包进系统的APKs目录,从而成为系统的一部分。 需要注意的是,预置的应用通常需要满足特定的安全性和...

    libZBarDecoder.so

    在实际开发过程中,开发者需要将64位的ZBarDecoder.so库文件放置到项目的jniLibs目录下,并根据不同的CPU架构(如arm64-v8a)进行区分。这样,在构建APK时,Gradle会自动将相应的库打包进对应的ABI目录,从而确保...

    VLC apk和 .so库

    本文将深入探讨如何从源码编译VLC apk安装包和所需的.so库,以及它们在Android项目中的应用。 首先,我们来看VLC for Android的编译过程。编译VLC源码涉及到多个步骤,包括获取源代码、配置编译环境、解决依赖关系...

    android串口so文件.zip

    在项目的jniLibs目录下,创建对应的子目录(如armeabi-v7a和arm64-v8a),然后将对应的.so文件放入相应目录,Gradle会在构建时自动将这些库打包到APK中。 为了确保串口通信的稳定性和可靠性,还需要关注以下几个...

    libsqlite.so

    总的来说,当遇到"Java.Long.UnsatisfiedLinkError"错误,尤其是在Android 7.x系统上找不到`libsqlite.so`时,开发者需要检查库的兼容性、路径、依赖项以及打包过程,通过上述解决方案来解决这个问题。同时,持续...

    libsoundtouch.so 全平台动态资源,开包即用

    在APK打包时,会根据目标设备的架构选择合适的libsoundtouch.so版本,这样应用就能在不同硬件上正确运行。 6. **优化与兼容性考虑**: 开发者在使用libsoundtouch.so时,应考虑到不同处理器架构的性能差异,可能...

    Auto.js打包插件.apk

    autojs打包成apk的插件 Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。 因为Auto.js是基于JavaScript的,学习Auto.js的API之前建议先学习JavaScript的基本语法和...

    Tess-two编译可用.so文件 2018

    5. **打包.so文件**:生成的.so文件需要被包含到Android应用的APK中,通常放在项目的`jniLibs`目录下,不同架构的文件放在相应的子目录中,如`armeabi-v7a`、`arm64-v8a`等。 6. **在Java代码中调用**:在Android...

    Android13怎么内置带so的apk

    - 使用Android Studio的Gradle插件构建项目,它会自动将.so文件打包到apk中。 2. **配置权限**: - Android 13可能需要你声明特定的权限来访问.so文件。例如,如果.so文件涉及到文件系统的操作,需要在`...

    freetype android 编译so库

    这样,Android Studio会在构建APK时自动将它们打包。 至此,Freetype库已在Android环境中编译完成,可以用于Android应用的原生代码中。在使用Freetype库时,确保遵循其API文档,正确地加载和渲染字体,以实现高效且...

    SerialPort Android串口开发

    - **链接.so文件**:将编译好的.so文件放入项目的`jniLibs`目录下,Android Studio会自动将其打包进APK。 - **Java中调用本地方法**:在Java代码中,使用`System.loadLibrary("mylib")`加载.so库,然后就可以像...

    Android之动态库生成并打包到APK中(Windows下)

    Android内核是Linux的,而linux的动态库是*.so文件,那么在windows要如何生成并打包到APK中呢?实现这一过程,大致需要以下几个步骤: 1、搭建编译环境 2、使用JNI生成相应的头文件 3、编写动态库的实现 4、生成动态...

    安卓webp解码库libwebp.jar libwebp.so

    1. **添加依赖**:首先,需要将`libwebp.jar`添加到项目的`libs`目录,并在`build.gradle`文件中配置依赖,以便在编译时将其打包到APK中。 2. **处理JNI**:对于`libwebp.so`,需要在`jniLibs`目录下按照架构...

    android将lib库打包成apk安装

    本教程将详细解释如何将C编写的动态链接库(.so文件,即lib库)整合到Android应用中,并打包成APK进行安装。 1. **创建JNI接口** 在Java代码中,我们需要定义JNI接口,这些接口将被C/C++代码实现。使用`native`...

    Android MuPDF 最新代码编译的SO库

    将编译好的SO库添加到Android项目的`jniLibs`目录下,Android Studio会自动将其打包进APK。然后,在Java代码中,使用`System.loadLibrary("mupdf")`加载库,即可开始调用MuPDF提供的功能。 7. **安全与性能考虑** ...

    基于ijkplayer 0.8.8编译的完整so. libijkffmpeg.so等,支持ssl h265, rm, rmvb

    基于ijkplayer 0.8.8版本(github 2021年11月...已经用gradle打包成一个android module,可以直接编译成一个aar,提供其他java或者kotlin代码调用。如果已经有项目,直接把文件夹里面的lib拷贝出来即可。 免费演示APK: ...

    libsqlite.so.zip

    6. 保存并构建项目,libsqlite.so将被打包进APK,供应用在运行时使用。 需要注意的是,使用原生库可能会增加APK的大小,而且需要确保所使用的库与目标设备的架构兼容。此外,静态链接非公开库可能会影响应用程序的...

    VLC for Android 3.1.5 x86_64版apk、aar及so

    以下是关于VLC for Android、apk、aar、so库以及不同ABI的知识点详解: 1. **VLC for Android**: - VLC for Android是VideoLAN项目的一部分,它将桌面版VLC的强大功能带到了移动平台。此应用程序支持各种视频和...

Global site tag (gtag.js) - Google Analytics