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

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤