.flutter-plugins-dependencies reemplaza a .flutter-plugins.
La salida de archivo de herramienta obsoleta `.flutter-plugins` ha sido reemplazada por `.flutter-plugins-dependencies`, y cualquier script de compilación o referencia a ella también debe actualizarse.
Resumen
#La herramienta flutter ya no generará el archivo de metadatos .flutter-plugins,
y solo generará .flutter-plugins-dependencies.
Las herramientas y scripts de compilación, como las configuraciones de Gradle (para aplicaciones Android) que
dependen de la presencia de .flutter-plugins deben ser actualizados.
Contexto
#En 2019, .flutter-plugins-dependencies
fue añadido como un formato de archivo más nuevo
que reemplaza a .flutter-plugins.
Así que un archivo que se veía algo así:
camera=/path/to/camera/plugin
shared_preferences=shared_preferences
Fue reemplazado por algo como esto:
{
"dependencyGraph": {
"camera": {
"name": "camera",
"version": "0.10.0",
"dependencies": {
"flutter": "0.0.0"
}
},
"shared_preferences": {
"name": "shared_preferences",
"version": "2.0.15",
"dependencies": {
"flutter": "0.0.0"
}
}
},
"flutter": {
"frameworkRevision": "3a0f99d4f2",
"channel": "stable"
}
}
Generar ambos archivos es una fuente de deuda técnica que
complica nuevos conjuntos de características, como
no empaquetar plugins de dev_dependency en una aplicación de producción (release).
Guía de migración
#La mayoría de los desarrolladores de Flutter no analizan ni usan este archivo, pero
las configuraciones de compilación podrían hacerlo, incluyendo el archivo settings.gradle generado
por ejecuciones más antiguas de flutter create --platforms android.
Estos archivos heredados aún podrían hacer referencia a .flutter-plugins y
deben actualizarse a un script de compilación más nuevo.
Por ejemplo:
include ':app'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
// Note explicitly reading the legacy '.flutter-plugins' file.
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
}
Podría actualizarse a su equivalente settings.gradle.kts:
pluginManagement {
val flutterSdkPath = run {
val properties = java.util.Properties()
file("local.properties").inputStream().use { properties.load(it) }
val flutterSdkPath = properties.getProperty("flutter.sdk")
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
flutterSdkPath
}
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
// Note the use of the flutter-plugin-loader versus reading '.flutter-plugins'
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "8.1.0" apply false
id("org.jetbrains.kotlin.android") version "1.8.22" apply false
}
include(":app")
Para obtener ayuda sobre cómo cambiar al nuevo DSL de plugins, consulta Aplicación imperativa obsoleta de los plugins de Gradle de Flutter.
Para realizar una prueba rápida (smoke test) de si tu compilación depende de un archivo .flutter-plugins,
puedes usar la bandera de característica (feature flag) explicit-package-dependencies:
flutter config --explicit-package-dependencies
Cualquier herramienta o script de compilación que pueda depender de la generación del archivo .flutter-plugins
ahora fallará.
Timeline
#Introducido en la versión: 3.28.0-0.0.pre
Lanzamiento estable: 3.32
Una versión estable después de que este cambio se introduzca,
ya no se generará .flutter-plugins.
Referencias
#Issues relevantes:
- Issue 48918, donde
.flutter-pluginsfue programado (en 2020) para su obsolescencia.
PRs relevantes:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.