【问题标题】:Selecting image from Gallery or Camera in Flutter在 Flutter 中从图库或相机中选择图像
【发布时间】:2019-09-16 08:06:41
【问题描述】:

我试图为用户提供一种从他们的画廊或相机中添加照片的方法,但是在按下按钮后颤动不断崩溃。

我已经实现了图像选择器依赖项以及 Dart:io,迁移到了 Android X,但仍然没有运气。这是我的一些代码:

class _PreferencesState extends State<_Preferences>
    with TickerProviderStateMixin {


File _image;
getImage(bool isCamera) async {
   File image;

if (isCamera) {
  image = await ImagePicker.pickImage(source: ImageSource.camera);
} else {
  image = await ImagePicker.pickImage(source: ImageSource.gallery);
}

setState(() {
  _image = image;
  });
}

然后在这里调用:

  FlatButton(
      textColor: Theme.of(context).primaryColor,
      child: Text('Use Camera'),
      onPressed: () {
          getImage(true);
      },
  ),
  _image == null
      ? Container()
      : Image.file(
          _image,
          height: 300,
          width: 300,
      ),    

每次调用该方法时都会出现此错误:

发生了异常。 PlatformException (PlatformException(error, Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on an null object reference,空))

我以为我将图像类型从 null 更改为不会被调用,但是我不确定这里还能做什么。

【问题讨论】:

  • 能否分享一下你的日志,并尝试清理你的项目一次,使用flutter clean
  • 这段代码是在询问您要从图库或相机中选择图片的位置吗???

标签: flutter flutter-dependencies


【解决方案1】:

崩溃可能是由于相机许可。 Image picker插件已移除相机权限条件。当我们访问相机时,应用程序会向我们请求许可,但不再支持此条件。我们需要使用permission_handler 插件手动请求权限。阅读有关此更改的更多详细信息 here 并查看 this 链接,了解如何使用 permission_handler 添加运行时权限。希望这能解决您的问题。

【讨论】:

    【解决方案2】:

    这可能不是最好的方法,但如果您想更快更轻松地解决解决方案,您可以清理所有包并删除项目,然后重新构建它。整个过程使用以下命令:

    导航到包含 pubspec.yaml 文件的文件夹并在终端上执行以下功能:

    [user@machine~]$ flutter clean
    [user@machine~]$ adb uninstall com.example.myfirst
    [user@machine~]$ flutter build apk
    [user@machine~]$ flutter pub get
    [user@machine~]$ flutter doctor -v
    [user@machine~]$ flutter pub upgrade --major-versions
    [user@machine~]$ flutter run
    

    当 android sdk 手机启动时,请确保您在单击按钮从图库中上传图像/文件时允许应用访问您的手机文件

    N/B:这适用于我的应用程序,它可能适用于您的应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多