前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter开发-发布时注意事项

Flutter开发-发布时注意事项

作者头像
码客说
发布2020-06-02 15:02:08
1.1K0
发布2020-06-02 15:02:08
举报
文章被收录于专栏:码客码客

启动白屏

Flutter 应用在 Android 端上启动时会有一段很明显的白屏现象,白屏的时长由设备的性能决定,设备性能越差,白屏时间越长. 然后这个白屏是可以控制的,在Android代码中的style.xml中有这样一段代码:

代码语言:javascript
复制
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
  <item name="android:windowBackground">@drawable/launch_background</item>
</style>

其中的launch_background就是这个白屏的图片的,详情可查看drawable目录下的具体文件:

launch_background.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />

    <!-- You can insert your own image assets here -->
    <!-- <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/launch_image" />
    </item> -->
</layer-list>

可以看得很清楚了,默认新建flutter时就是白色的启动页了,然后下面还有注释,我们可以自己添加其他的启动图,当然更换之后就好了

另外需要注意的是在AndroidManifest.xml中MainActivity节点下有如下配置:

代码语言:javascript
复制
<meta-data
    android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
    android:value="true" />

这里就设置了启动flutter的main.dart之前一直显示我们设置的launch_background,

如果我们设置这个值为 false,那么在启动flutter代码之前就是黑屏了.

应用名称和LOGO

Flutter并不是设置一处名称或Logo,然后不同平台就相应生成对应的文件或代码,我们需要在对应平台的目录下修改

比如Android就在android=>app=>src=>main=>AndroidManifest.xml中修改应用名称

代码语言:javascript
复制
<application
    android:name="io.flutter.app.FlutterApplication"
    android:icon="@mipmap/ic_launcher"
    android:label="青鸽管家">
</application>

对应的LOGO也就是修改mipmap/ic_launcher对应位置的图片即可

应用签名

生成或使用之前的签名文件demo.jks

代码语言:javascript
复制
keytool -genkey -v -keystore demo.jks -keyalg RSA -keysize 2048 -validity 1000000 -alias demo

把文件放在android=>app=>build.gradle的同级

打开android=>app=>build.gradle

找到buildTypes,同级上面添加如下配置

代码语言:javascript
复制
signingConfigs {
    debug {
        storeFile file("demo.jks")
        storePassword "123456"
        keyAlias "demo"
        keyPassword "123456"
    }
    release {
        storeFile file("demo.jks")
        storePassword "123456"
        keyAlias "demo"
        keyPassword "123456"
    }
}

buildTypes修改如下

代码语言:javascript
复制
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
    debug {
        signingConfig signingConfigs.debug
    }
}

应用打包

打包命令

代码语言:javascript
复制
flutter build apk

打包成功后的文件路径

build/app/outputs/apk/release/app-release.apk

SDK location not found.

SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

这种错误的原因是Shell在执行命令的时候找不到变量,所以首先先确认自己用的Shell

打开Android Studio的配置 找到Tools=>Terminal

设置Shell Path

比如我用的Zsh就输入

代码语言:javascript
复制
/bin/zsh

如果没配置变量就根据自己的Shell不同 按下文配置,配置过的就不用再看下文了。

查看配置是否生效

代码语言:javascript
复制
echo $ANDROID_HOME

配置属性

打开配置文件

Bash

代码语言:javascript
复制
open ~/.bash_profile

Zsh

代码语言:javascript
复制
open ~/.zshrc

添加如下配置

代码语言:javascript
复制
export ANDROID_HOME=/Users/zhangjian/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

保存后执行下面命令让配置立即生效

代码语言:javascript
复制
source ~/.bash_profile

或者

代码语言:javascript
复制
source ~/.zshrc

修改后记得重启Android Studio

xxx:verifyReleaseResources

个别依赖包下载不回来报错 xxx:verifyReleaseResources

解决方法:升级依赖的版本

打包后网络请求报错

原因: 正式版的安卓app 需要设置允许网路权限

解决:android\app\src\main\AndroidManifest.xml,manifestandroid\app\src\profile\AndroidManifest.xml,manifest 里添加这段代码,

然后在打包就解决这问题了

代码语言:javascript
复制
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动白屏
  • 应用名称和LOGO
  • 应用签名
  • 应用打包
    • 打包命令
      • SDK location not found.
        • xxx:verifyReleaseResources
          • 打包后网络请求报错
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档