原文链接: 本人博客园文章
本地码完代码,各环境测试人员测试完毕,正准备打包安卓apk上架应用商店时,烧脑问题来了而且还不止一个.......
接下面讲述我所遇到的几个问题:
一 keystore 签名生成不了,对于非原生的人来说这也是个蛮大的坑。按照Flutter官方文档的步骤就是生成不了...
-
原因,生成key的路劲不对,不要照搬官方的指令,修改下生成的路劲在引用
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key -
改成如下 存放到:本地
C:\work_ljx\android-key/key.jks目录下keytool -genkey -v -keystore C:\work_ljx\android-key/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key -
在把生成的key.jks复制到项目文件
android/app/下, 在key.properties里引入
storePassword=(你的秘钥)
keyPassword=(你的秘钥)
keyAlias=key(不用动)
storeFile=\key.jks(文件在android/app/key.jks下, 所以在这直接是\key.jks)
二 依赖包下载不回来报错。
1:android sdk 没有许可证
- 找到你的
sdk toos/bin目录下有个sdkmanager.bat, cmd 命令行执行sdkmanager --licenses; - 然后会有一堆然后容让你同意的;注意假如没出现需要你同意的直接100%了,那么你需要重新下载sdk了;
- 我的刚开始就是没有,直接卸载Android Studio重新按照Flutter官方文档的步骤运行会自动帮你装上
- sdk,然后在运行那个命令你就会发现有一大堆需要你同意的了,一直Y就是了
2:android sdk 版本不一致
- 也许有的人和我一样先安装的是
vscode然后自己下载的安卓 sdk; 在后面又按官方步骤下Android Studio - 这时他又自动给你又下载一个 安卓SDK;问题是两个版本不一致,所以我打包时报sdk版本不一致,一直下不回来;
- 我把sdk全部卸载在通过官网
Android Studio安装步骤安装一个就行了
3:个别依赖包下载不回来报错 xxx:verifyReleaseResources
- 我的项目里引入了几个依赖, 但是我是用的版本不是最新的,
- 这时打包报错提示 依赖包依赖的 安卓 sdk和你所安装的sdk版本不一致, 这... 有毒;
- 这时你把依赖包的版本改为最新或最近的, 不过你的sdk安装时最好也选择最新的;这时问题就解决了
三 安卓 apk 打包之后正式版发现全部请求报错
- 原因: 正式版的安卓app 需要设置允许网路权限
- 解决:
android\app\src\main\AndroidManifest.xml,manifest和android\app\src\profile\AndroidManifest.xml,manifest里添加这段代码, 然后在打包就解决这问题了
<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" />
四 Xcode ios打包报错 #import "XXXXXXXX"啥的, 依赖包引入不了
- 原因:
windows创建的flutter项目使用的是swift语言, 而ios需要的是objc - 解决: 新建空目录使用
flutter create -i objc my-flutter-app创建新项目, 在把原项目下lib文件夹下的所有文件替换新创建的lib文件夹, 这就可以了;Android\ios都没问题