Obj*_*ist 1 junit android unit-testing serial-port beagleboneblack
我知道 Android 不提供对串行端口的开箱即用的访问,除非设备已 root 或刷新了自定义 Android 版本,例如在 BeagleBone Black 板上 - 这正是我的情况。使用Android SerialPort API 项目,我可以通过示例 GUI 应用程序(稍作修改)访问和测试设备的串行端口。
不过,我还想为串行 API 添加 JUnit 测试,因为我会将其扩展为库模块以供客户端程序员使用。我尝试使用 AndroidTestCase,但收到错误:
java.lang.UnsatisfiedLinkError: Native method not found:
com.XXX.android.serialport_api.SerialPort.open:
(Ljava/lang/String;II)Ljava/io/FileDescriptor;
at com.XXX.android.serialport_api.SerialPort.open(Native
Method)
at com.XXX.android.serialport_api.SerialPort.<init
(SerialPort.java:32)
Run Code Online (Sandbox Code Playgroud)
在我看来,serialport.so 文件在 AndroidTestCase 提供的模拟环境中未加载/可见。我正在使用 Android Studio 中“新建模块”向导创建的标准测试结构。
任何建议或提示将不胜感激,因为我对该主题的搜索一无所获。如果需要,我很乐意提供测试类和实现(尽管实现与上面引用的开源示例中的 SerialPort.java 类几乎相同)。
我发现了这个问题。包名称硬编码在预编译的 .so 文件中。因此,不必使用像 com.XXX.XXX 这样的自定义包名称,而是必须将 SerialPort(和其他实现类)直接放在 /java 文件夹下的顶级包中。包名称应该完全是 android_serialport_api —— 就像库示例中一样。
| 归档时间: |
|
| 查看次数: |
2481 次 |
| 最近记录: |