全新安装OpenSUSE后现有Flutter应用Android构建失败如何解决
解决OpenSUSE Tumbleweed下Flutter老项目安卓构建报generateDebugLintModel空指针问题
该问题是OpenSUSE默认权限策略、临时文件机制与Flutter 3.0.2内置Gradle插件、Lint工具的兼容问题,和项目业务代码、Gradle配置本身无关,按以下步骤操作即可修复:
- 清理全量构建缓存
进入项目根目录依次执行:flutter clean rm -rf android/.gradle android/app/build build .dart_tool pubspec.lock flutter pub get - 修复Gradle脚本权限与格式
OpenSUSE对Git拉取的可执行文件权限、文本换行符校验比其他发行版严格,进入android目录执行:sudo zypper install -y dos2unix chmod +x gradlew dos2unix gradlew gradle/wrapper/gradle-wrapper.properties - 配置Gradle使用自定义临时目录
OpenSUSE默认开启的私有临时目录机制会导致Lint进程读取临时文件失败触发空指针,执行以下命令指定用户目录下的可写临时路径:
如果你使用zsh作为默认shell,把上面命令里的mkdir -p ~/.tmp/gradle echo 'export GRADLE_OPTS="-Djava.io.tmpdir=$HOME/.tmp/gradle"' >> ~/.bashrc source ~/.bashrc.bashrc换成.zshrc即可。 - 重新生成安卓平台构建模板
不需要手动核对配置文件,直接在项目根目录执行命令自动适配OpenSUSE环境下的构建配置,该操作不会影响现有业务代码:
执行时如果提示文件冲突,输入flutter create --platforms=android .y确认覆盖即可。 - 额外兼容配置(上述步骤完成后仍报错时操作)
打开android/app/build.gradle,在android配置块中添加Lint容错配置:android { // 保留原有所有配置,仅新增以下内容 lint { checkReleaseBuilds false abortOnError false } }
完成以上步骤后直接执行flutter build apk即可正常构建,相关本地配置修改不会影响代码在Windows、macOS端的正常构建逻辑。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

