Flutter 构建 apk - 请更新您的 settings.gradle 文件

Par*_*ati 5 mobile android gradle dart flutter

Flutter run 在 mac os 上运行良好但是当我尝试构建我的应用程序的发布 apk 版本时,它会引发几个 gradle 错误:

Plugin Project preferences not found please update settings.gradle
Plugin Project :drawer behavior not found please update settings.gardle
Plugin Project :Google-maps not found please update settings.gradle

Run Code Online (Sandbox Code Playgroud)

You*_*lid 11

我发现问题与settings.gradle 使用旧版本的文件有关,一切正常。在我的特定情况下,没有构建 moor_ffi,并且 apk 中也不包含共享库 libsqlite。

这是工作文件settings.gradle

include ':app'

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}
Run Code Online (Sandbox Code Playgroud)

这是最近的不工作 settings.gradle

include ':app'

def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()

assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }

def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
Run Code Online (Sandbox Code Playgroud)

参考链接 GitHub Flutter Issus


小智 4

使用如下所示的旧版本的settings.gradle。新版本也不适合我,但是一旦我设置了旧版本,它就开始工作并且没有显示该错误

  include ':app'

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    include ":$name"
    project(":$name").projectDir = pluginDirectory
}
Run Code Online (Sandbox Code Playgroud)