7

Flutter run works perfectly fine on mac os But when I try to build a release apk version of my app it throws a couple of gradle errors:

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

Kevin Perez
  • 667
  • 5
  • 17
Parsa Barati
  • 73
  • 1
  • 1
  • 5
  • OK, why don't you update settings.gradle? – MMG Apr 04 '20 at 03:36
  • there is nothing in settings.gradle file to update – Parsa Barati Apr 04 '20 at 03:37
  • ```include ':app' def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() def plugins = new Properties() def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-dashboard.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 } ``` – Parsa Barati Apr 04 '20 at 03:37
  • this is the code inside settings.gradle – Parsa Barati Apr 04 '20 at 03:38
  • @MohammadMoeinGolchin do u have any idea? – Parsa Barati Apr 04 '20 at 04:06
  • This question doesn't help you? https://stackoverflow.com/questions/52998515/ – MMG Apr 04 '20 at 04:11
  • I fixed it by just changing my gradle versions and adjusting name til they do not conflict – Parsa Barati Apr 04 '20 at 07:02

2 Answers2

14

I've found that the problem is related to settings.gradle Using an old version of the file everything works. In my specific case moor_ffi was not built and also the shared library libsqlite was not included in the apk.

this is the working file 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
}

this is the more recent not working 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"

Reference Link GitHub Flutter Issus

Yousif khalid
  • 5,801
  • 3
  • 18
  • 23
4

Use the old version of settings.gradle shown below. The new version wasn't working for me either but once i set the old one, it started working and not showing that error

  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
}
Hug
  • 66
  • 3