android/ folder is required for non-android plugins #46304
Copy link
Copy link
Closed
Labels
p: firebaseObsolete - Firebase pluginsObsolete - Firebase pluginspackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.
Description
Applications that include non-android plugin packages (e.g a web-only plugin package) are failing to build for Android.
This regressed in #45379 and is fixed in #46282
Unfortunately there have been a few releases between the regression and the fix (as of writing v1.12.10 .. v1.13.0 all have the bug).
To make plugins work in the bad build range we're including a temporary android/ folder in non-android plugins. Once the fix makes it to a stable release plugins can bump the minimal Flutter constraint and cleanup their no-op android folder.
Keeping this open until the fix makes it to a stable release.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
p: firebaseObsolete - Firebase pluginsObsolete - Firebase pluginspackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.
Activity
mit-mit commentedon Dec 8, 2019
I think this is fine as long as we only do this to plugins where we use the explicit platform tags to specify that the plug-in does not support Android. That way we can remove the folder again later.
[url_launcher_macos] add a no-op android implementation (#2403)
cyanglaz commentedon May 20, 2020
can we do the necessary work to close this issue now since the new stable is released?
blasten commentedon May 20, 2020
@cg021 it should just be reverting flutter-team-archive/plugins#2403 and flutter-team-archive/plugins#2408, then publishing a patch in each of these plugins.
creativecreatorormaybenot commentedon May 23, 2020
The fix does not seem to work for Android AARs 😕 #57846
kw2019ltd commentedon Sep 19, 2020
flutter create project generate setting.gradle as below
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"
pls update it with old way like
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
}
[url_launcher_macos] add a no-op android implementation (flutter-team…
github-actions commentedon Aug 12, 2021
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.