Android-SerialPort-Tool实践运行

2023-10-31 03:59

本文主要是介绍Android-SerialPort-Tool实践运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需要在讯为4412开发板(核心板为Exynos4412)实现安卓的串口通信

 

在github(https://github.com/licheedev/Android-SerialPort-Tool)下载项目文件后

【问题一】

有Android3.4.0运行会失败,无法通过Syc:

原因在于MainActivity中需要      import android.serialport.SerialPortFinder;

但dependency无法获取     implementation 'com.github.licheedev.Android-SerialPort-API:serialport:1.0.1'

【解决方案】

1.  所以我们从github(https://github.com/licheedev/Android-SerialPort-API)下载Android-SerialPort-API,将其中的 Android-SerialPort-API\serialport\src\main\java\android 文件夹拷贝到Tools项目中 Android-SerialPort-Tool-master\app\src\main\java 下;

2.  并且注释掉   implementation 'com.github.licheedev.Android-SerialPort-API:serialport:1.0.1'

 

此处test.runner的问题不大,Alt+Enter选择注释掉就可以了

 

 

【问题二】

此时我们可以在AVD中以及开发板讯为4412上运行该应用了

但是在开发板讯为4412上无法打开串口:

这是因为没有相关的JNI本地包,所以我们需要导入JNI包;

 

也可能会遇到ClassNotFoundException,这是因为导包失误,主要是是没放对位置,自己调整就好了:

【解决方案】

从刚刚下载的\Android-SerialPort-API中将Android-SerialPort-API\serialport_bin\src\main\jniLibs文件夹拷贝到Tool项目Android-SerialPort-Tool-master\app\src\main目录之下

 

这里说明一下,安卓项目引入JNI包其目录固定位jniLibs;(参考 如何在AS导入jar&&so文件 https://blog.csdn.net/crazylzxlzx/article/details/52106947)

 

【问题三】

此时,原本可以运行的程序反而连编译都编译不了了

出现报错“CreateProcess error=2, 系统找不到指定的文件。”

对于这个问题,是工程的gradle版本问题

1. 在build.gradle中将 dependencies 的 classpath 'com.android.tools.build:gradle:3.0.1' 改为 

classpath 'com.android.tools.build:gradle:3.4.0'

2. 在 gradl-wrapper.properties 中将 distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 改为 

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

 

【大功告成】

现在,大功告成,连接开发板并运行程序

板子介绍:

连接串口:

接受串口消息

 

NICE哦~~~~~~~~~~~~~~~~~~~~

[ 鬼知道我们这两天经历了什么 ]

 

 

 

这篇关于Android-SerialPort-Tool实践运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/312683

相关文章

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

PostgreSQL如何用psql运行SQL文件

《PostgreSQL如何用psql运行SQL文件》文章介绍了两种运行预写好的SQL文件的方式:首先连接数据库后执行,或者直接通过psql命令执行,需要注意的是,文件路径在Linux系统中应使用斜杠/... 目录PostgreSQ编程L用psql运行SQL文件方式一方式二总结PostgreSQL用psql运

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M