1、  新建JniUtils类实现native方法

 

2、  在build中执行clean project 再rebuild project 生成class文件。

注意:最新版本的AndroidStudio中classes文件的路径是在\app\build\intermediates\javac\debug\compileDebugJavaWithJavac\classes。而原来的版本classes路径是在\app\build\intermediates\classes

3、  通过javah -jni 生成对应的.h文件

注意:

3.1、在执行该命令时要在classes路径下执行,否则会报找不到JniUtils的类文件,且执行时不带文件后缀

3.2、生成的.h文件也是在classes路径下

.h路径:

 

成功时:

 

失败时:

 

 

4、  新建jni文件夹,把上述中的.h文件拷贝到jni文件夹下,且在jni路径下新建一个c语言文件,实现.h中的方法(注意方法名要保持一致)

 

 

 

 

5、  接下来开始通过cmake生成so文件

5.1、把CMakeList.txt文件拷贝到app路径下,注意CMakeList中的一些设置,在add_library中要设置需要编译的源文件,在target_link_libraries中要设置输出的so文件名,eg设置为serial_port则生成的so名为libserial_port。

5.2、在app路径下的build.gradle中配置cmake,且在JniUtils.java中设置System.loadLibrary注意libname为在CMakeList中设置的保持一致

 

 

5.3、点击sync工程之后,在clean Project时,如果报如下错误,则重启AndroidStudio试下,大概率的能成功clean

5.4、通过上步的clean Project之后,再Rebuild Project会生成so文件,路径如下

 

 

6、  把上述生成的so库拷贝到libs路径下,运行即可。

版权声明:本文为longjunhao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/longjunhao/p/10220173.html