kongqw / AndroidSerialPort

Android串口通信示例
718 stars 214 forks source link

为什么使用了C文件还要使用so库?可以不使用so库吗? #1

Closed JingYeoh closed 6 years ago

JingYeoh commented 7 years ago

你好,下面代码有点不太明白,第一行应该是直接使用了SerialPort.c文件把?为什么第二行还要再次使用so库呢?第二行的代码运行会出错啊。 java System.loadLibrary("SerialPort"); System.loadLibrary("serial_port"); 错误如下: java java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/qingwei.kong.kqwserialportdemo-1/lib/arm/libserial_port.so: has text relocations at java.lang.Runtime.loadLibrary(Runtime.java:372) at java.lang.System.loadLibrary(System.java:1076) at qingwei.kong.serialportlibrary.SerialPort.<clinit>(SerialPort.java:86) at qingwei.kong.kqwserialportdemo.MyApplication.getSerialPort(MyApplication.java:31) at qingwei.kong.kqwserialportdemo.SerialPortActivity.onCreate(SerialPortActivity.java:101) at qingwei.kong.kqwserialportdemo.MainActivity.onCreate(MainActivity.java:18) at android.app.Activity.performCreate(Activity.java:6303) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) at android.app.ActivityThread.access$900(ActivityThread.java:153) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5441) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

注释掉System.loadLibrary("serial_port");后可以正常运行,但是在调用open方法的时候返回的是null值,但是串口和比特率都是对的,请问这是什么原因导致的呢?

kongqw commented 6 years ago

已重构