选择一个aar文件,我这里用DynamsoftBarcodeReader.aar。
我们提供的服务有:成都做网站、网站设计、微信公众号开发、网站优化、网站认证、九原ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的九原网站制作公司
把目录flutter/examples/hello_services/android/导入到Android Studio中。
点击File New New Module,选择Import .JAR/.AAR Package,添加AAR文件。打开工程属性,添加依赖模块就可以了。
1. 建立一个flutter项目的命令
2. 在ios文件夹下,生成pods文件夹
3. Xcode环境签名设置;
把错误的版本删除再添加,可解决签名错误问题;必须先删除再添加,直接修改可能不起作用。团队开发,必须使用团队的签名。
4.运行创建的flutter项目;
选择真机、模拟机,点击运行按钮,或使用命令运行:
下面两步是赠送的:
5.新加一款插件,所涉及的命令;
ios 端所涉及的命令
6. 刚更新的插件和已有的插件有冲突怎么办?
可以试一试以下步骤:
项目中在播放本地视频时,在iOS设备没有问题,但是在Android设备报错 FileNotFoundException,具体报错日志如下:
经过排查发现实例化视频播放器时本地资源路径 'asset' 前面多了一个 ‘/’ :
在iOS设备上没问题,但是在Android上就变成了错误日志中的 flutter_assets//asset/video/1.mp4 ,变成了2个 / ,去掉 asset 前面的 / 即可。
在项目中找到 AndroidManifest.xml 文件,其中 android:label="demo" 就是应用程序名称,修改引号中的内容即可
在项目中找到 mipmap-mdpi mipmap-hdpi mipmap-xhdpi mipmap-xxhdpi mipmap-xxxhdpi 文件夹,替换这些文件夹中的 ic_launcher.png 文件即可
注意:图标有多种尺寸的大小,是为了适配不同分辨率的手机而设计的
在项目中找到 Info.plist 文件,其中 CFBundleDisplayName 和 CFBundleName 下面的就是应用程序名称,修改内容即可
找到项目中的 AppIcon.appiconset 文件夹,其中 Contents.json 是配置文件,其它的图片文件就是图标,替换这些图片文件即可
注意:图标有多种尺寸的大小,是为了适配不同分辨率的手机而设计的
插件地址:
在项目中找到 pubspec.yaml 文件,添加内容如下
插件地址:
在项目中找到 pubspec.yaml 文件,添加内容如下
注意:准备一张 1024x1024 的 png 图片,取名为 icon.png 并把它放在 assets/icon 目录中
找到 ~/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_launcher_icons-0.9.2/lib/android.dart 文件修改内容如下
注意:如果使用了镜像地址就找到 ~flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_launcher_icons-0.9.2/lib/android.dart 文件来修改以上内容
Dart的 IO 库包含了文件读写的相关类,它属于 Dart 语法标准的一部分,所以通过 Dart IO 库,无论是 Dart VM 下的脚本还是 Flutter,都是通过 Dart IO 库来操作文件的,不过和 Dart VM 相比,Flutter 有一个重要差异是文件系统路径不同,这是因为Dart VM 是运行在 PC 或服务器操作系统下,而 Flutter 是运行在移动操作系统中,他们的文件系统会有一些差异。
Android 和 iOS 的应用存储目录不同, PathProvider 插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。该类当前支持访问两个文件系统位置:
File代表一个整体的文件,他有三个构造函数,分别是:
文件读取本身有两种形式,一种是文本,一种是二进制。
2.2.1 读取文本内容
如果是文本文件,File提供了readAsString、readAsLines、readAsStringSync、readAsLinesSync方法,读取文本内容
readAsString 一次性读取所有文本
readAsLines 一行行的读取文本
结果返回的是一个List,list中表示文件每行的内容
readAsStringSync、readAsLinesSync同步读取文本
2.2.2 读取二进制内容
如果文件是二进制,那么可以使用readAsBytes或者同步的方法readAsBytesSync:
dart中表示二进制有一个专门的类型叫做Uint8List,他实际上表示的是一个int的List。
上面提到的读取方式,都是一次性读取整个文件,缺点就是如果文件太大的话,可能造成内存空间的压力。
所以File为我们提供了另外一种读取文件的方法,流的形式来读取文件.
示例
dart提供了open和openSync两个方法来进行随机文件读写:
写入和文件读取一样,可以一次性写入或者获得一个写入句柄,然后再写入。
一次性写入的方法有四种,分别对应字符串和二进制
句柄形式可以调用openWrite方法,返回一个IOSink对象,然后通过这个对象进行写入:
默认情况下写入是会覆盖整个文件的,但是可以通过下面的方式来更改写入模式:
虽然dart中所有的异常都是运行时异常,但是和java一样,要想手动处理文件读写中的异常,则可以使用try,catch:
我们还是以计数器为例,实现在应用退出重启后可以恢复点击次数。 这里,我们使用文件来保存数据:
1.引入PathProvider插件;在pubspec.yaml文件中添加如下声明:
执行 flutter pub get
2.实现如下
参考: