关于flutter的image_picker的问题

发布于 2022-09-11 21:42:05 字数 2060 浏览 17 评论 0

问题描述

使用image_picker,在安装好后,点击按钮报错。错误信息如下图:

clipboard.png

问题出现的环境背景及自己尝试过哪些方法

我对flutter还不太熟(真萌新),在已有安卓项目中混入flutter模块工作内容中,使用image_picker插件。这个插件最新的版本,需要我把整个项目迁移到AndroidX,因为是原生已有项目,那边有人在负责,并且他们不觉得有必要。所以按我的理解,我就用了image_picker的0.4.12+1版本。
在此确保自己已经在添加插件后执行了Packages get操作,另外的,flutter clean和clean Project甚至清除缓存重启AS也都试过。
另外百度过,不过...没找到解决方法。
flutter run和flutter build也试过,不过报错,原因是flutter module部分没有对应的android mainifest.xml文件?

相关代码

// 相关功能代码如下:

import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
File img;
Future getImage() async {

print("swfwrfs");
var image = await ImagePicker.pickImage(source: ImageSource.camera);
setState(() {
  img = image;
});

}

Widget _ImgView() {

if(img == null) {
  return GestureDetector(
    onTap: () {
      getImage();
    },
    child: Container(
      width: ScreenUtil.getInstance().setWidth(163),
      height: ScreenUtil.getInstance().setWidth(163),
      child: Image(image: AssetImage('assets/addPic.png'),width: ScreenUtil.getInstance().setWidth(163)),
    ),
  );
}else{
  return GestureDetector(
    onTap: () {
      getImage();
    },
    child: Container(
      width: ScreenUtil.getInstance().setWidth(163),
      height: ScreenUtil.getInstance().setWidth(163),
      child: Image.file(img),
    ),
  );
}

}
@override
Widget build(BuildContext context) {

//...
_ImgView()
//...

}

你期待的结果是什么?实际看到的错误信息又是什么?

期待的结果就是能顺利拍个照片,然后把拍好的图片展示出来...
同时也期待有经验的前辈多多指教,感激不尽,如果确实想的话可以发个红包啥的...


2019年8月20日更新
不过有趣的是,我重新建了一个项目,然后,点击按钮的时候没有报这个错了(虽然后续,,,拍好照片点击确认以后,回到原界面,依旧是一片空白......以及,再次点击的时候就会报一个错说[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(already_active, Image picker is already active, null)),我有时候在想,会不会是自己在用的手机的缘故,荣耀10...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

懒猫 2022-09-18 21:42:05

你需要先注册插件

public class MainActivity extends FlutterActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GeneratedPluginRegistrant.registerWith(this);
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文