android开发,怎么使用ndk编译成.so文件

如上面所说

一、首先下载android-ndk,官方网站是:http://developer.android.com/tools/sdk/ndk/index.html
目前最新的版本是android-ndk-r8e-windows-x86.zip,下载地址:
http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86.zip
下载后把压缩包解压出来,例如:D:\ndk,目录下的ndk-build.cmd就是用来编译的批处理命令。
二、编译,打开cmd命令行窗口,cd进入目录:D:\ndk\samples\hello-jni,
然后执行命令:D:\ndk\ndk-build.cmd(如果设置过环境变量则直接使用ndk-build.cmd)来编译hello-jni,如果没有错误会输出:
Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
"Compile thumb : hello-jni <= hello-jni.c
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
三、创建android应用程序并使用so文件
打开eclipse创建一个android应用程序HelloJni,默认的com.example.hellojni包下面有一个MainActivity.java,
在此包下添加一个HelloJni.java,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-06
使用在jni目录下使用ndk-build 命令就OK了
第2个回答  2020-07-03

请问楼主编译出.so了吗,我报这个错

******

android开发,怎么使用ndk编译成.so文件
使用NDK编译成.so文件的步骤如下:下载并解压NDK:从Android NDK官方网站下载最新版本的NDK。将下载的压缩包解压到一个指定目录,例如D:ndk。配置编译环境:打开命令行窗口。使用cd命令进入NDK的samples目录,例如D:ndksampleshellojni。执行D:ndkndkbuild.cmd命令进行编译。编译生成.so文件:如

android studio ndk-build 编译C生成.so文件(ndk基础篇),看完你就懂...
需要正确指定类路径和生成目录。创建C文件并配置build.gradle:创建一个C文件,例如nativelib.c,在其中实现JNI函数。配置build.gradle文件,允许Java代码调用C代码。这通常涉及设置ndk路径和指定源文件。运行项目并验证:运行Android项目,验证C函数的调用是否成功。查找.so文件:编译完成后,.so库文件会在指...

android studio ndk-build 编译C生成.so文件(ndk基础篇),看完你就懂...
1. 准备工作首先,确保你的开发环境已安装Android Studio 2.3版本,并配置了必要的SDK、JDK。通过SDK Manager安装所需的组件,完成后,为项目NdkDemo创建一个新的工程。2. ndk-build编译步骤在gradle.properties文件中添加android.useDeprecatedNdk=true,以便支持旧版NDK。编写Java类JNIUtils.java,然后重...

如何在Android Studio中导入JNI生成的.so库
首先在Android Studio工程的app目录下创建整个jni目录,jni目录里写Android.mk、Application.mk以及各类C\/C++和汇编源文件。然后跟原来一样,用ndk_build工具去编,然后工具会自动生成libs目录,里面还有每个你在Application.mk里所指定处理器架构的so文件。完成之后,编辑app目录下的build.gradle文件,为其添...

android 怎么编译so文件
android NDK编译多个so文件android编译系统的makefile文件Android.mk写法如下(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。(2)And...

Linux下NDK编译出的SO库能在WIndows下的android工程直接使用么
1.android的NDK开发需要在linux下进行: 因为需要把C\/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。2.安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C\/C++的代码编译成库 3...

如何优雅地使用NDK – 徐绍华
NDK开发比较常用的命令就是生成头文件、构建so包,在android studio上我们可以先配置好命令,使用起来就很方便了,这是我感觉最赞的地方。如下图所示,我添加了三个命令,按加号添加 其中一个命令的配置详情如下图:命令配置参数:javah用于生成头文件 Program:$JDKPath$\/bin\/javah Parameters: -encoding...

Win10下NDK 编译curl&protobuf
在CURL_BUILD_DIR中创建Android.mk文件,并配置相应的编译参数。准备curl_config.h文件:为了避免编译时寻找错误路径,建议在Cygwin环境下使用configure命令生成curl_config.h文件,确保其为非Windows版本。执行编译:打开命令行工具,导航到CURL_BUILD_DIR,执行ndkbuild命令,生成libcurl.so。编译protobuf:1....

Android中怎么调用.so库文件
这种情况下需要构建一个Java类文件,生成.h文件,编写C源文件,包含之前生成的.h文件并实现相应方法,最后使用Android NDK开发包中的ndk-build脚本生成对应的.so共享库。具体操作包括检查SO是否符合JNI规范,是否希望直接暴露给JAVA层,以及是否希望与第三方库兼容。如果SO不符合JNI规范,或者你希望控制库的...

android ndk 怎样调用第三方的so库文件
根据前面生成的com_android_libjni_LibJavaHeader.h 文件,编写libaddjni.c,用 来生成libaddjni.so Android中集成第三方软件包(.jar, .so)Android中可能会用到第三方的软件包,这包括Java包.jar和Native包.so。jar包既可通过Eclipse开发环境集成,也可通过编译源码集成,看你的工作环境。假定自己...

相似回答