我有一个在macOS上使用< code > flutter _ libserialport 库的项目。我正在修改它,以在网络上工作,但这个库不能在网络上工作。
我正在使用javascript中的< code>navigator.serial构建一个web实现,效果很好。
然而,当我试图为web构建项目时,我得到了以下错误
/opt/homebrew/Caskroom/flutter/2.2.3/flutter/.pub-cache/hosted/pub.dartlang.org/libserialport-0.2.0+3/lib/src/config.dart:25:8: Error: Not found: 'dart:ffi'
import 'dart:ffi' as ffi;
这是有道理的,因为FFI在网络上不可用。
但我甚至不需要网络上的自由软件库
。
我怎样才能让颤抖忽略它?
我尝试了这个,但它不包含如何排除软件包的信息。
它也不包含有关如何专门针对Web忽略它的信息。它似乎只是一般地忽略它。
也许您应该使用kIsWeb
谓词来保护libserialport
,如下所示:
if(!kIsWeb){
// libserialport code execution here
}
我也搜索了很多,但没有找到一种方法可以做到这一点,我认为这应该由包本身而不是包的用户来处理,例如在< code>path_provider中。
作为一种解决方法,我仅为Web创建了一个虚拟的libseralport
的SerialPort
类,如下所示:
dummy_serialport.dart
:
class SerialPort {
final String name;
static List<String> availablePorts = ['dummy'];
static SerialPortError? lastError;
SerialPort(this.name);
bool openReadWrite() {
return false;
}
}
class SerialPortError {}
// add more properties and functions as needed
主要飞镖
:
import 'package:libserialport/libserialport.dart'
if (dart.library.html) './dummy_serialport.dart'
if (dart.library.io) 'package:libserialport/libserialport.dart';
....
if (!kIsWeb) {
final name = SerialPort.availablePorts.first;
final port = SerialPort(name);
if (!port.openReadWrite()) {
print(SerialPort.lastError);
exit(-1);
}
}
....
....
这很糟糕,我知道:(但它的工作原理!也许您可以联系包作者以获取更多见解,如果打开PR,其中接口与FFI实现分开,以便导入类不会破坏Web或其他内容。
编辑:我编辑了我的大摇大摆的路径。但我现在正处于错误以下。
null 我已经在“Manage Jenkins”-->“Configure System”下配置了Maven设置。 当我在“预步骤”部分创建“调用顶级Maven目标”步骤时,所有工作都按照预期进行。在“目标”行中,我可以指定“-x”、“clean install”等,并且maven通过打印这些目标,例如: [DEBUG]正在从.../settings.xml读取全局设置 [DEBUG]正在使用.
我的项目有一个功能良好的TFS构建设置,它与我以前的android项目配合得很好。 所以最近我创建了一个新的Android项目,我试图用TFS构建和创建一个apk,但是当它启动单元测试部分时,我得到了一个错误,它说: 未能应用插件的com。Android内部的应用程序'。 Android Gradle插件需要Java11才能运行。您正在使用Java1.8。您可以尝试以下选项: 更改IDE设置。 改
问题内容: Eclipse VERSION 3.7似乎存在一些问题 当我编译单个项目(通过ant或buildProject)时,Eclipse开始在工作空间中构建所有项目,这需要很长时间。 我尝试过两种方式来构建项目- 右键单击ant文件,选择Run And And Build。 在Eclipse中右键单击项目,选择Build Project。 Eclipse会以两种方式首先开始构建其他打开的项目
问题内容: 我需要使用以下命令创建一个zip文件: 这可行,但是创建的zip文件会创建一个目录结构,将目录模仿为原始文件。我不需要很多额外的文件夹。 粗略浏览手册页或Google搜索时,我没有找到答案。 问题答案: 您可以使用。
我试图为一个使用蓝牙进行通信的应用程序启动一个flutter项目。为此,我使用了flutter blue。 不幸的是,当尝试(在Android设备上)运行我创建的第一个示例时,遇到了以下错误: 如果我在Android Studio上,我会知道如何升级Android minSdkVersion,但在一个扑朔迷离的项目(使用VSCode)上,我有点迷失了。 是否有可能用颤振来增加最小Sdk版本,以及如