安卓串口打不开,open函数老是返回-1

在开发板上打开串口就开始报错,SElinux已经修改成permissive模式,权限改成777了。报错日志如下
V/audio_hw_primary(102): do not use out resampler
D/dalvikvm(22743): Trying to load lib /data/app-lib/android.serialport-1/libserial_port.so 0x41cc5b18
D/dalvikvm(22743): Added shared lib /data/app-lib/android.serialport-1/libserial_port.so 0x41cc5b18
D/dalvikvm(22743): No JNI_OnLoad found in /data/app-lib/android.serialport-1/libserial_port.so 0x41cc5b18, skipping init
D/serial_port(22743): Opening serial port /dev/ttyS0
D/serial_port(22743): open() fd = -1
E/serial_port(22743): Cannot open port
E/SerialPort(22743): native open returns null

首先,查看环境是否存在问题

  1. 运行-》cmd-》adb shell –》进入linux底层

  2. 查看selinux是否为关闭状态,查看命令为:getenforce

若返回permissive即为正确,若返回enforcing,则进行修改。

3.关闭setlinux的方法:

#vi /etc/selinux/config
将文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
注:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式

  1. 修改完成后修改对应串口的权限

cd dev 到dev目录

chmod 777 ttyS0 (ttyS0 修改为自己配置的端口)

4.确保NDK环境安装正常。

我也遇到此问题,楼主解决没有,te中所有权限都开了,没有提示权限的问题,就是open("/dev/ttyS1",O_RDWR)总是返回-1,我的系统是android 7.0哪位大神能帮忙分析下. 同样的代码在framework下就没问题,移植到APP的JNI里就会出现此问题.