我有一个小部件可以像这样在我的应用上拍照:
final File imageFile =
await ImagePicker.pickImage(source: ImageSource.camera).then((test) {
print('TEST $test');
return test;
});
我可以打开相机而没有任何错误,也可以拍照,但是当我尝试返回或接受照片时,我的应用程序显示白屏,而控制台完全没有错误。
这在真实设备(小米Redmi Note 8t)上失败了,但在Android Emulator上可以使用。
当我拿相机时,我唯一看到的消息是Lost connection to device.
答案 0 :(得分:2)
修复了添加try catch的问题:
Future<Null> _pickImageFromCamera(BuildContext context, int index) async {
File imageFile;
try {
imageFile = await ImagePicker.pickImage(source: ImageSource.camera)
.then((picture) {
return picture; // I found this .then necessary
});
} catch (eror) {
print('error taking picture ${error.toString()}');
}
setState(() => this._imageFile = imageFile);
}
答案 1 :(得分:0)
我找到了 flutter 2 的解决方案
在安卓中
您需要将此添加到您的 3 清单(调试、主要、配置文件)
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
然后用 try catch 选择图像,就像这样
Future getbehind() async {
try{
final pickedFile = await picker.getImage(source: (ImageSource.camera:ImageSource.gallery),)
.then((value) {
setState(() {
if (value != null) {
behind = File(value.path);
} else {
print('No image selected.');
}
});
});
}catch(e){
}
在发布模式下运行应用程序就完成了!