Android使用cmake编译串口通信.so文件报错cannot locate symbol "tcgetattr"

原因

在SerialPort.c的代码中有使用到tcgetattr方法

Android使用cmake编译串口通信.so文件报错cannot locate symbol
image

tcgetattr方法存在于 termios.h头文件中

在api 19 之后的termios.h 里面的函数有调整,api版本设置不对会导致在不兼容的android版本下出现这个错误。

我编译.so库时把minSdkVersion设置成21了,在android4.4的工控机上出现了这个错误。

解决办法

只需要将module下的build.gradle文件里的minSdkVersion设置成19或以下,再进行编译,就OK了。


Tips:NDK版本在17以后就不支持armeabi了,所以想要支持到更多的ABI,使用16的NDK版本就好了,

Android使用cmake编译串口通信.so文件报错cannot locate symbol
image

你可能感兴趣的:(Android使用cmake编译串口通信.so文件报错cannot locate symbol "tcgetattr")