# flutter_xyf
**Repository Path**: flutter_xyf/flutter_xyf
## Basic Information
- **Project Name**: flutter_xyf
- **Description**: 完全的一个flutter 项目,没有任何依赖
- **Primary Language**: Dart
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-08-05
- **Last Updated**: 2022-08-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 常用命令
- 运行项目
flutter run -d id(指定设备运行)
flutter run -d chrome 运行在 chrome 浏览器
- 初始化依赖
flutter pub get
- 清除缓存
flutter clean
- 打包
flutter build apk --release
## java jdk 安装[https://www.oracle.com/java/technologies/javase-downloads.html]
下载地址 dmg 地址[https://www.oracle.com/java/technologies/javase-jdk11-downloads.html]
### 测试安装完成
```js
java 输出命令
```
## adb 常用命令
- adb tcpip 5555 db 修改端口,为了可以局域网连接
- adb connect 192.168.60.41:5555 adb 连接加上手机 mac 中显示的 ip
- adb install build/app/outputs/flutter-apk/app-release.apk 直接通过电脑安装 apk
## 问题汇总
```dart
Failed to install the following Android SDK packages as some licences have not been accepted.
platforms;android-30 Android SDK Platform 30
build-tools;29.0.2 Android SDK Build-Tools 29.0.2
```
可以打开 androidStudio 查看 config,在这里可以找到 sdkManage 下载对应的 sdk
### 常用网址[https://juejin.cn/post/6990312457394716709#7Api__932]
## flutter 应用升级流程
### 依赖插件 flutter pub add package_info
- package_info (获取版本信息)[https://pub.flutter-io.cn/packages/package_info/install]
- path_provider (获取文件存储路径)[https://pub.flutter-io.cn/packages/path_provider/install]
- flutter_downloader (文件下载)[https://pub.flutter-io.cn/packages/flutter_downloader/example]
- open_file (打开文件)[https://pub.flutter-io.cn/packages/open_file]
配置网络权限
在 /Users/xuyifei/Documents/flutter_xyf/android/app/src/main/AndroidManifest.xml 中加入以下内容
```java
```
## flutter 打包流程
1、生成签名证书 .jks
```js
keytool -genkey -v -keystore ./android/sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign
keytool -importkeystore -srckeystore ./android/sign.jks -destkeystore ./android/sign.jks -deststoretype pkcs12 可以对上面的文件协议升级
```
2、配置 build.gradle
```java
android {
compileSdkVersion 30
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutter_xyf"
minSdkVersion 16
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
signingConfigs {
release {
keyAlias 'sign'
keyPassword '123456'
storeFile file('../sign.jks')
storePassword '123456'
}
debug {
keyAlias 'sign'
keyPassword '123456'
storeFile file('../sign.jks')
storePassword '123456'
}
}
buildTypes {
release {
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
ndk {
//这里要加上,否则debug包会出问题,后面三个为可选,x86建议加上不然部分模拟器回报错
abiFilters "armeabi", "armeabi-v7a","arm64-v8a"
}
}
debug {
signingConfig signingConfigs.debug
ndk {
//这里要加上,否则debug包会出问题,后面三个为可选,x86建议加上不然部分模拟器回报错
abiFilters "armeabi", "armeabi-v7a","arm64-v8a", "x86"
}
}
}
}
```
### 空安全
操作符 ? 放在类型后面表示当前变量可为 null,例如 String a 和 String ? b ,a 不能为 null,而 b 可以。
操作符 !表示此变量值不为 null,如果为 null 则会抛出异常。使用请慎重考虑。
操作符 late 它可以告诉编辑器:这个非空变量,我稍后会初始化。