Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振图像选择器未在应用程序版本中打开图库_Flutter - Fatal编程技术网

Flutter 颤振图像选择器未在应用程序版本中打开图库

Flutter 颤振图像选择器未在应用程序版本中打开图库,flutter,Flutter,画廊和相机在调试中正确打开(使用emulator和real device),软件包请求权限(我在android清单中设置了权限),接受后画廊打开。没有警告/错误。当我用flatter build apk--release发布应用程序并在我的手机上测试它时(小米红米注7),图像选择器不会打开图库。按钮不起任何作用,应用程序也不会崩溃。我没有尝试flatterbuildapk--debug,但我打赌它会工作。正如我所说的,我拥有最新版本的image_picker api 29权限,并尝试使用Flat

画廊和相机在调试中正确打开(使用emulator和real device),软件包请求权限(我在android清单中设置了权限),接受后画廊打开。没有警告/错误。当我用
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
(在设备连接的情况下),图像选择器工作正常。应用程序自动安装在您的设备上,但您通常可以在那里找到工作的apk
build\app\outputs\apk\release\app release.apk
(控制台将打印路径)


感谢上面的提示。

我认为这个问题主要是因为compiledsdkversion,因为image_picker compiledsdkversion是28。对于android 10,它应该需要编译的SDKVersion 29

我不知道是什么崩溃了,但请尝试运行
flatter run--release
请向我们展示您的代码,以便我们可以帮助您更新代码。我仍然认为这是一个构建问题,也许它没有在发行版中包含权限,但这很奇怪,因为我有带地理定位器的谷歌地图(需要权限),它工作正常。当我到家时,我也会尝试@ZviKarp解决方案