# 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 它可以告诉编辑器:这个非空变量,我稍后会初始化。