按照常用方法导入失败,版本过低,需要降低NDK版本,并且还会出现各种问题。
原先的方法:


问题1:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file***] couldn't find "libserial_port.so"
解决:

问题2:
/lib/arm/libserial_port.so: has text relocations
解决:
1、在Android.mk文件中加入:LOCAL_LDFLAGS += -fPIC

2、重新编译Google开源库的源码,生成.so库
-


-

从而需要修改build.gradle文件

-
将生成的lib下的文件复制到libs文件夹下(生成文件的位置通过文件搜索libserial_port.so即可找到)


问题3:
java.lang.UnsatisfiedLinkError: No implementation found for java.io.FileDescriptor com.example.test.android_serialport_api.SerialPort.open(java.lang.String, int, int) (tried Java_com_example_test_android_1serialport_1api_SerialPort_open and Java_com_example_test_android_1serialport_1api_SerialPort_open__Ljava_lang_String_2II)
解决:

注意! 我们自己的包名和demo 包名不一致,从而需要新建android_serialport_api这个包,把SerialPort.java等文件放入

以上解决方法参考文章如下:
本文介绍了在Android开发中遇到的串口通信库导入及使用问题,并提供了详细的解决方案,包括调整NDK版本、修改Android.mk文件、编译源码生成.so库等步骤。

3560

被折叠的 条评论
为什么被折叠?



