我们正在用一些本地模块构建flutter应用程序。以前我们使用flutter作为一些跨平台部署的模块,但最终我们决定先让它成为flutter。
一切似乎都像预期的那样工作,直到我们出现这个错误:
Gradle生成.apk文件失败。这个文件很可能是在C:Usersuserfolderprojectflutter_modulesbuild下生成的,但工具找不到它。
在C:Usersuserfolderprojectflutter_modulesbuildappoutputsapkdebug下生成了一个可以工作的apk,但是我们无法找到安装gradle来查找它的方法。
我们尝试了许多建议的修复方法,如指定应用程序风格,添加拆分,更新flutter和gradle,但都没有效果。我们是不是漏掉了什么?
是否有办法指定gradle应该在哪个文件夹中搜索生成的apk?
我们知道如果我们运行flutter run --use-application-binary flutter_modules/build/outputs/apk/debug/app-debug.apk
,它会安装它,但在安装之前不会构建它。但是我们无法通过使用flutter run
或在Android Atudio中按下run来构建和安装它。
有人遇到同样的情况吗?除了构建它,让它找不到apk并手动安装之外,我们还能做些什么吗?
经过几天的调试,我们决定在构建后将生成的.apk移到构建系统期望的位置。换句话说,我们将这个添加到应用级build.gradle中。
applicationVariants.all { variant ->
variant.assemble.doLast {
copy {
from '../../build/app/outputs/apk/debug/app-debug.apk'
into '../../build/host/outputs/apk'
}
}
}
还要确保这个位于项目级build.gradle.
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}