Flutter 颤振图像选择器未在应用程序版本中打开图库
画廊和相机在调试中正确打开(使用emulator和real device),软件包请求权限(我在android清单中设置了权限),接受后画廊打开。没有警告/错误。当我用Flutter 颤振图像选择器未在应用程序版本中打开图库,flutter,Flutter,画廊和相机在调试中正确打开(使用emulator和real device),软件包请求权限(我在android清单中设置了权限),接受后画廊打开。没有警告/错误。当我用flatter build apk--release发布应用程序并在我的手机上测试它时(小米红米注7),图像选择器不会打开图库。按钮不起任何作用,应用程序也不会崩溃。我没有尝试flatterbuildapk--debug,但我打赌它会工作。正如我所说的,我拥有最新版本的image_picker api 29权限,并尝试使用Flat
flatter build apk--release
发布应用程序并在我的手机上测试它时(小米红米注7),图像选择器不会打开图库。按钮不起任何作用,应用程序也不会崩溃。我没有尝试flatterbuildapk--debug
,但我打赌它会工作。正如我所说的,我拥有最新版本的image_picker api 29权限,并尝试使用Flatter clean进行重建。软件包基本上在工作,但不是在发布模式下。有什么建议吗
图像选择器类
import 'dart:io';
import 'package:image_picker/image_picker.dart';
import 'package:flutter/material.dart';
class ImageUpload extends StatefulWidget {
@override
_ImageUploadState createState() => _ImageUploadState();
}
class _ImageUploadState extends State<ImageUpload> {
File _image;
Future getImage() async {
var image = await ImagePicker.pickImage(source: ImageSource.gallery);
setState(() {
_image = image;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Image Picker Example'),
),
body: Center(
child: _image == null ? Text('No image selected.') : Image.file(_image),
),
floatingActionButton: FloatingActionButton(
onPressed: getImage,
tooltip: 'Pick Image',
child: Icon(Icons.image),
),
);
}
}
导入'dart:io';
导入“包:image_picker/image_picker.dart”;
进口“包装:颤振/材料.省道”;
类ImageUpload扩展了StatefulWidget{
@凌驾
_ImageUploadState createState()=>\u ImageUploadState();
}
类_ImageUploadState扩展状态{
文件图像;
Future getImage()异步{
var image=wait ImagePicker.pickImage(源:ImageSource.gallery);
设置状态(){
_图像=图像;
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“图像选择器示例”),
),
正文:中(
子项:_image==null?Text('未选择图像'):image.file(_image),
),
浮动操作按钮:浮动操作按钮(
onPressed:getImage,
工具提示:“拾取图像”,
子:图标(Icons.image),
),
);
}
}
安卓清单
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
在我的例子中,解决方案是运行
flatter run--release
(在设备连接的情况下),图像选择器工作正常。应用程序自动安装在您的设备上,但您通常可以在那里找到工作的apkbuild\app\outputs\apk\release\app release.apk
(控制台将打印路径)
感谢上面的提示。我认为这个问题主要是因为compiledsdkversion,因为image_picker compiledsdkversion是28。对于android 10,它应该需要编译的SDKVersion 29我不知道是什么崩溃了,但请尝试运行
flatter run--release
和请向我们展示您的代码,以便我们可以帮助您更新代码。我仍然认为这是一个构建问题,也许它没有在发行版中包含权限,但这很奇怪,因为我有带地理定位器的谷歌地图(需要权限),它工作正常。当我到家时,我也会尝试@ZviKarp解决方案