-
在flutterlab中执行flutter build aar 或者flutter build apk,此时默认生成flutter-release.aar,引入智造中,会报错找不到io.flutter.plugins等,因为flutter build aar 指令并不会将依赖的第三方plugin, module 或者 libary 打入到 aar 中,需要搭配 fat-aar 。
-
此时需要配置fat-aar等相关第三方库到flutterlab的build.gradle中,但是因为每次执行flutter pub get,.android文件夹就会重新生成,那么就需要使用脚本向build.gradle中进行环境配置代码注入
-
Fat-aar以及 打包flutter 第三方plugin的 注入成功后,第一次可以执行flutter build Apk会成功,但在执行uploadArchives时,会提示* What went wrong: Could not determine java version from '12.0.1'.
-
需要将gradle_wrapper中gradle版本由4.6改为5.1.1,但是每次执行脚本,这个版本号都会重置
-
注入上述代码成功,修改gradle版本为5.1.1 ,并成功执行flutter build Apk后,再次执行 flutter build Apk/flutter build aar/uploadArchives都会失败
-
尝试,不执行flutter build Apk ,直接uploadArchives
遇到的问题
打包Aar并上传时遇到的问题
-
Gradle build tools 3.2.1, Gradle wrapper version 4.6会报 What went wrong: Could not determine java version from '12.0.1'. (这个问题是java版本和gradle版本不兼容)
-
Gradle build tools 3.2.1, Gradle wrapper version 5.1.1 解决了上面12.0.1的问题,但是报出新的问题,那就是执行uploadArchives/ build aar等时会报flutter:reBundleAarRelease Failed的错误
-
Gradle build tools 3.4.1, Gradle wrapper version 5.1.1 可以解决上述问题
-
值得注意的是solution库里的maven上传,Gradle build tools 3.0.1, Gradle wrapper version 4.1 也没问题
需要在flutter.sh中解决,gradle和 build tools version导致上传失败的问题。
-
因为每次执行flutter pub get, .android 文件夹都会被重置。
-
所以需要在flutter pub get 之后,通过脚本写入正确的版本号
接入智造项目时遇到的问题
-
提示找不到flutter plugin的引用,需要将api('code.solution.flutterlab:flutterlab:1.0-SNAPSHOT@aar')即关闭传递依赖,使用本地flutter-release.aar包不会出现这个问题。(依赖传递: https://juejin.im/entry/59918304518825489151732d)
-
提示找不到com.crashlytics.sdk.android:crashlytics-ndk,此时需要在host build.gradle 中添加
implementation('com.crashlytics.sdk.android:crashlytics-ndk:2.0.5@aar') {
transitive = true
}
-
使用flutterlab源码接入,不会出现找不到com.crashlytics.sdk.android:crashlytics-ndk这个问题。
-
snapshot未即时更新,需要在引用处添加配置
// SNAPSHOT(changing)和+号(dynamic)版本默认24小时自动更新,通过更改resolutionStrategy可以修改检查周期。
configurations.all {
// check for updates every build
resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
网友评论