Flutter 插件项目:未找到位置\ web。请更新settings.gradle。我该如何解决这个问题?

Flutter 插件项目:未找到位置\ web。请更新settings.gradle。我该如何解决这个问题?,flutter,dart,google-maps-api-3,flutter-dependencies,flutter-web,Flutter,Dart,Google Maps Api 3,Flutter Dependencies,Flutter Web,我在我的android颤振应用程序中使用了google地图api和location pub,dev包,并尝试使用api中的url显示图像。 这是带有一些代码的url: class LocationHelper{ static String mapviewpointer({double latitude, double longitude}){ return "https://maps.googleapis.com/maps/api/staticmap?center=$lat

我在我的android颤振应用程序中使用了google地图api和location pub,dev包,并尝试使用api中的url显示图像。 这是带有一些代码的url:

class LocationHelper{
  static String mapviewpointer({double latitude, double longitude}){
    return "https://maps.googleapis.com/maps/api/staticmap?center=$latitude,$longitude&zoom=13&size=600x300&maptype=roadmap&markers=color:pink%7Clabel:C%7C$latitude,$longitude&key=$GOOGLE_API_KEY";
  }
}
它抛出了以下错误消息:

插件项目:未找到位置\u web。请更新settings.gradle

我不知道如何修复这个错误

这是我在终端中收到的另一个错误:

I/flutter (21880): Invalid argument(s): No host specified in URI file:///Instance%20of%20'Future%3CString%3E'
我收到上述错误消息的区域位于我的代码中:

Future <String> _getUserLocation() async{
  final locData = await Location().getLocation();
  final staticMapUrl = LocationHelper.mapviewpointer(
    latitude: locData.latitude, 
    longitude: locData.longitude,
    );
    return staticMapUrl;
}

final mapview = _getUserLocation();


class NearbyScreen extends StatelessWidget {
  @override
  //LocationHelper.mapviewpointer(latitude: )
  
  Widget build(BuildContext context) {
    return  Column(
            children: <Widget>[
              Container(height:170, width: double.infinity,
              child:Image.network(mapview.toString())
              ),
              Text("hello"),
            ],
          );
  }
}
Future\u getUserLocation()异步{
最终位置数据=等待位置().getLocation();
最终staticMapUrl=LocationHelper.mapviewpointer(
纬度:locData.latitude,
经度:locData.longitude,
);
返回staticMapUrl;
}
最终地图视图=_getUserLocation();
类NearbyScreen扩展了无状态小部件{
@凌驾
//LocationHelper.mapviewpointer(纬度:)
小部件构建(构建上下文){
返回列(
儿童:[
容器(高度:170,宽度:无限大),
子项:Image.network(mapview.toString())
),
文本(“你好”),
],
);
}
}

这是否与我在
\u getUserlocation
函数中返回的是
未来
而不是
字符串
有关?如何修复此问题?

使用以下
设置。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
}

这将创建一个
.flatter plugin
文件,该文件将包含插件及其路径。

我遇到了同样的问题,在@Peter Haddad answer之后,我复制并替换了settings.gradle(所有)中的代码,并且我在解析属性和文件的符号时出错

要修复它:转到工具->颤振->在Android Studio中打开进行编辑

在Android Studio窗口中,转到文件->使缓存无效并重新启动


这似乎为我解决了这个问题。

加入你的颤振应用程序->安卓->
设置。gradle

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
}
如所见


有关此问题的更多信息

删除ProjectName/Build文件夹,它已为我解决了此问题。

修复已安装facebook flipper的用户 我本想将此添加为注释,但让我将其作为答案发布,以获得正确的代码格式

如果你安装了facebook的flipper,并带有相对的FlitterKit插件,那么你的
设置.gradle
应该已经修改过了

要使用@Peter Haddad和@Paulo Belo建议的修复程序,您需要继续加载flipper的插件,并添加其他条件:

plugins.each { name, path ->
    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
    if (name == 'flutter_flipperkit') {
        // flipper loading
        include ':flipper-no-op'
        project(':flipper-no-op').projectDir = new File(pluginDirectory, 'flipper-no-op')
    }
    else {
        // location_web not found fix
        include ":$name"
        project(":$name").projectDir = pluginDirectory
    }
}

希望这对某人有所帮助。

您能展示一下您的
pubspec.yaml
?非常感谢!但是,在尝试显示映射图像时,我仍然收到此错误消息:“I/flatter(10600):解析图像编解码器时引发以下ArgumentError:I/flatter(10600):无效参数:URI中未指定主机file:///Instance%20of%20“未来的%3CString%3E”这里会出现什么问题?在代码的哪一行,您从哪里得到这个错误?或者在做了什么之后?
getUserLocation()
返回一个
Future
,而
Image.network
需要一个url。。因此,最好使用
FutureBuilder
并在其中调用
Image.network
Image为什么会发生此错误?这个脚本做什么?顺便说一句,我检查了我的
.flatter plugins
文件,它是由一个最新的flatter版本创建的,它包含了位置和web路径。可能正如@PeterHaddad所说的,一些插件不支持新的设置定义,不需要打开Android Studio来清理缓存,请在终端中使用以下命令:
flatter clean
在AndroidStudio 4.1中,您可以从“工具”菜单执行fflutter/clean