include ':app'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withInputStream { stream -> plugins.load(stream) }
}
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}
-
Jakob Andersen authored
Gradle projects are evaluated in lexicographical order, and the plugin projects are at the same level as the :app project, so if a plugin has a name that comes before 'app' (like, for example, any name that starts with a capital letter), the plugin project will be evaluated before :app. Since :app applies the Flutter Gradle plugin, which tries to modify the dependencies of the plugin projects, we have a problem if the plugin projects have already been evaluated. Adding evaluationDependsOn(':app') to the plugin projects fixes this. Updated example projects to the latest (plugin-enabled) Gradle build files. Also removed two unused imports in `pluginClass.java.tmpl`.
5541d71b