flutter 抖动时出现MissingPluginException

s4chpxco  于 2022-12-14  发布在  Flutter
关注(0)|答案(3)|浏览(173)

我试图打开一个URL,但我得到这个错误,当我运行模拟器上的Android应用程序或在设备上的结果是,屏幕上什么都没有发生,但我得到“未处理的异常:MissingPluginException”,但是当我使用Windows应用程序时,它工作得很好。
启动URL支持:安卓、windows、ios
E/扑动(6260):[错误:flutter/运行时/dart_vm_initializer.cc(41)]未处理的异常:缺少插件异常(未在通道plugins.flutter.io/url_launcher_android上找到方法启动的实现)E/flutter(6260):第一个方法是调用一个新的方法,它是一个新的方法。E/扑动(6260):(package:peliculas/screens/details_cast.dart:371:8)电子/Flutter(6260):
我的代码:

Future<void> _launchURL(String url) async {
  
  final Uri uri = Uri(scheme: "https", host: url);
  
  if (!await launchUrl(uri)) {
    throw 'Could not launch $url';
  }
  • 我正在使用url =”www.google.com“-模拟器API 30
What I tried before: 
     - flutter clean
     - flutter pug get 
     - flutter run 
     - uninstall app 
     - flutter doctor -v   is OK
     - Im not using hot restart or hot reload

**更新:**它发生在其他项目,但现在只是在这一个,我有另一个项目,我只使用这种方法,并在更新后关闭和打开再次开始工作,但主项目没有工作。我移动项目到另一个地方,并打开,但我得到了相同的。

ttcibm8c

ttcibm8c1#

在终端中运行这些命令
1:$扑洁
2:$扑击酒馆得到
并重新启动应用程序

inb24sb2

inb24sb22#

已更新

您正在使用url_launcher包,该包使用本机设备方法以便正常工作,也如错误中所示
在通道上找不到方法启动的实现
在AndroidManifest.xml中的<application>元素上方添加以下代码

<queries>
<!-- If your app opens https URLs -->
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="https" />
    </intent>
<!-- If your app opens https URLs -->
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="http" />
    </intent>        
</queries>

<dict>元素内的Info.plist中添加以下代码

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>https</string>
    <string>http</string>
</array>

现在,在lib文件夹中创建一个文件launch_url.dart并粘贴以下代码

import 'package:flutter/material.dart';
      import 'package:url_launcher/url_launcher.dart';

      class LaunchUrl extends StatelessWidget {
      const LaunchUrl({super.key});

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Launch Url'),
          ),
          body: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Center(
                child: ElevatedButton(
                  onPressed:  () async => await _launchUrl('https://google.com/'),
                  child: const Text('Launch Url'),
                ),
              ),
            ],
          ),
        );
      }

      Future<void> _launchUrl([
        String? url,
      ]) async {
        if (!await launchUrl(Uri.parse(url!), mode: LaunchMode.externalApplication,)) {
          throw 'Could not launch $url';
        }
      }
      }

请卸载手机上的旧应用程序并运行以下命令
振动式清选机
一种扑击棒
在此之后,再次运行应用程序,并单击如下所示的按钮,在浏览器中打开URL。

<img src="https://i.stack.imgur.com/6nl3d.gif" alt="launch url in flutter">
gkl3eglg

gkl3eglg3#

添加到您的android清单

<queries>
        <!-- If your app opens https URLs -->
        <intent>
           <action android:name="android.intent.action.VIEW" />
           <category android:name="android.intent.category.BROWSABLE" />
           <data android:scheme="https" />
        </intent>
       
</queries>

相关问题