同样一个Flutter程序,在公司电脑可以正常编译,在随身的笔记本和家里的电脑编译一直有问题,因为赶项目,周末不得不往返一个多小时到公司加班,昨天加班效率不错,今天抽出时间,好好整理一下处理思路
笔记本是双系统,Windows和Mac下编译时一直报一个错误,在Windows系统中显示是一串乱码加一个数字17,尝试了网上找到的所有修改输出字符集的方式,一直还是乱码,切换到苹果系统下编译,终于看到了错误信息:
无效的目标发行版 17
从日志上可以看到,是引用的一个组件依赖引用了mobile_scanner,而mobile_scanner-3.5.6版本要求使用JDK17进行编译,build.gradle信息如下:
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
但主应用默认使用的JDK1.8,build.gradle信息如下
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
尝试在本机安装JDK17,再次编译,还是报无效的目标发行版 的异常,随即把mobile_scanner中build.gradle中的编译信息改为
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
再次进行编译,正常通过
笔记本是双系统,Mac的很快就编译好了,测试能正常编译和发布应用
Windows系统下又出现一个问题,就是gradle插件下载不了的情况,以前出现这种情况都是直接手工下载,再手工将gradle-wrapper.properties文件中的
distributionUrl=本地下载的插件文件
以前每次都能通过,今天笔记本的Windows怎么也通不过,又找了不少资料,后看到一篇贴子写的方法,退出Android studio,删除.dart_tool和.idea文件夹,再重新打开Android studio,果然对到症了,后续编译非常顺利
家里的台式电脑,还出现了一个问题,提示could not resolve all files for configuration
报错的是Android sdk 33的android.jar,到目录中去找这个文件,发现没有,于是通过SDK Manager删除再重新添加SDK 33,添加后OK
3个环境都调好了,心情舒畅了很多
长沙几天前就预警今明两天的暴雪,家里的小朋友们一早起来就很失望,家里玩雪的工具都备齐了现在到晚上九点了还没雪的影子,期待明早起来白茫茫的一片