在颤振中使用 url 启动器时出现未处理的异常

问题描述

RichText(
    text: TextSpan(
      children: [
        TextSpan(
          text: "Soumik's LinkedIn Profile",style:
              TextStyle(fontSize: 20.0,color: Colors.blue),recognizer: TapGestureRecognizer()
            ..onTap = () async {
              var url =
                  "https://www.linkedin.com/in/soumik-mukherjee-438b451b5/";
              if (await canLaunch(url)) {
                await launch(url);
              } else {
                throw "Failed to open LinkedIn";
              }
            },)
      ],),

我在 Flutter 上编写了这段代码来启动我的 LinkedIn 个人资料的 URL。当我在模拟器上运行它时,它工作正常,因为当我点击 URL 时网页会自动打开。但是,当我通过在调试模式下运行应用程序在物理设备上尝试相同时,URL 没有响应。相反,我在控制台中收到错误消息。

THIS IS THE SCREENSHOT OF THE ERROR IN THE TERMINAL

解决方法

我假设您的 POCO X2 上安装了 Android 11,这是 API 级别 30。

以下是 canLaunch 函数的文档:https://pub.dev/documentation/url_launcher/latest/url_launcher/canLaunch.html

文档说:“在 Android(来自 API 30)上,当 AndroidManifest.xml 文件中未提供所需的可见性配置时,canLaunch 将返回 false。有关详细信息,请参阅 Android 文档中的 Managing package visibility 文章.”

因此,我假设您没有在 AndroidManifest.xml 文件中提供可见性配置,这会导致 canLaunch 返回 false