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

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1