Flutter项目打包过程及打包apk后在安卓模拟器上显示空白解决方案?

动机:作者现在需要打包一个Flutter项目的apk,在这个Flutter项目中使用到了webview服务。该项目名称是:flutter_issue_120853。本文使用的是Android Studio开发工具。 本文共包含两部分内容:1. flutter_issue_120853的打包过程;2. flutter_issue_120853在安卓模拟器上显示空白问题的解决方案。

1. flutter_issue_120853的打包过程(Android应用)

1.1 创建签名

在创建签名之前,你的电脑中需要有JDK环境(具体安装步骤可以自行百度)。在你项目的根目录下输入以下命令:

keytool -genkey -alias android.jks -keyalg RSA -storetype PKCS12 -validity 36500 -keystore android.jks

命令解释:创建一个证书文件,名为 android.jks,别名也为 android.jks,加密算法采用 RSA,有效期为 100年,行业标准格式 PKCS12。note:这里可以自行设置路径,作者直接创建到flutter_issue_120853项目的根目录下。
注:
-genkey 生成文件
-alias 别名
-keyalg 加密算法
-validity 有效期
-keystore 文件名
-storetype PKCS12 行业标准格式 PKCS12

按照指令依次填写要求的内容,最后填写完成输入 y 确认信息

1.2 查看证书的具体信息

命令如下:

keytool -list -v -keystore "android.jks"

1.3 在项目中配置签名信息

在项目的android的文件夹下创建key.properties文件。

=========== 粘贴如下代码 ==================
storePassword=<password from previous step>    //输入上一步创建KEY时输入的 密钥库 密码
keyPassword=<password from previous step>    //输入上一步创建KEY时输入的 密钥 密码
keyAlias=android.jks // 别名
storeFile=   //key.jks的存放路径

=========== 示例 ==================
storePassword=123456
keyPassword=123456
keyAlias=android.jks
storeFile=C:/Users/tingt/Desktop/android.jks (创建签名的路径,1.1中的介绍。)

进入项目目录的*/android/app/build.gradle文件,在build.gradle*文件顶部加入如下代码:

// 寻找签名配置文件
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

替换build.gradle文件中的代码如下:

=================== 替换前代码 =================
buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}

=================== 替换后代码 =================
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

1.4 打包安装应用

flutter build apk

1.5 安装app

通常情况下,打包好的apk存放在项目的根目录下的*\build\app\outputs\apk\release\app-release.apk*。然后执行下面命令进行安装即可。

adb install C:\Users\tingt\Desktop\flutter_app\build\app\outputs\apk\release\app-release.apk

2. flutter_issue_120853在安卓模拟器上显示空白问题的解决方案

第一部分已经介绍了Flutter项目如何打包成apk。本章节主要介绍在安卓模拟器上打开已经安装好的app后出现空白页面问题的解决方法。当作者在安卓模拟器上打开刚刚安装好的app时,遇到了下面这种情况:
在这里插入图片描述
等了好久也没有出现指定的页面。
原因分析:造成上面这种情况的原因是因为安卓开发中flutter应用没有网络权限。解决方案如下:

1.1 添加网络权限

android\app\src\profile\AndroidManifest.xml文件中,在**中添加如下代码:

<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" />

AndroidManifest.xml配置文件如下所示:
在这里插入图片描述
重新打包apk,然后在模拟器中执行这个app,可以发现app可以正常显示网页了。
在这里插入图片描述
大功告成!!!

欢迎讨论…

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值