当前位置: 首页 > 知识库问答 >
问题:

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

赵君植
2023-03-14

图库和相机在调试中正确打开(使用模拟器和真实设备),软件包请求权限(我在android清单中设置了它们),并在接受它们后打开图库。没有警告/错误。当我使用flutter构建apk-发布发布应用程序并在我的手机上测试它(小米redmi Note 7)时,图像选择器不会打开图库。按钮不做任何事情,应用程序也不会崩溃。我没有尝试flutter构建apk-调试,但我打赌它会起作用。正如我所说,我有image_picker的最新版本api 29的权限,并尝试用flutter干净重建。包基本上工作,但不是在发布模式。有什么建议吗?

图像选取器类

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),
      ),
    );
  }
}

Android清单

  <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" />

共有2个答案

司寇研
2023-03-14

我认为这个问题主要是因为comiledsdkversion,因为image_pickercomiledsdkversion是28。对于android 10,它应该需要comiledsdkversion 29

司徒茂实
2023-03-14

在我的案例中,解决方案是运行flutter-run--release(连接设备),图像选择器工作正常。该应用程序会自动安装在您的设备上,但您通常可以在那里找到工作的apkbuild\app\outputs\apk\release\apprelease。apk(控制台将打印路径)。

感谢上面的评论提示。

 类似资料:
  • 我有一个pgm文件,格式如下 请帮帮我。。我不知道是什么问题。

  • 我在drawable文件夹(example.jpg,sue.png)中有2个图像。 我想打开drawable文件夹作为一个库来选择一个新的图像,然后新的图像将替换原始图像(在本例中,原始图像是example.jpg) 但是当我打开图库选择新图像时,却没有图像可供选择。 我应该如何解决这个问题? 下面是我的代码: ProfileActivity: XML:

  • 我有这个图像,我想选择其中的所有地图,包括使用python的名称。 我用OpenCv试过了 但是我总是得到这个错误: OpenCV(4.2.0)C:\projects\OpenCV python\OpenCV\modules\imgproc\src\templammatch。cpp:1104:错误:(-215:断言失败)(深度==CV\U 8U | |深度==CV\U 32F) 我该怎么做?请帮帮

  • 我想打开画廊与多个图像选择功能,我使用以下代码。 它会打开gallery应用程序,但不允许我选择多个图像。

  • 我尝试在python(3.6)OpenCV2最新版本中运行简单的代码。但是当我想使用cv2.imshow()显示图像时,图像没有打开。并显示一个空窗口。 这是输出。为了简单起见,我将图像与代码放在同一个文件夹中,但它不起作用。而且也没有错误。我正在使用“Spyder”ide编写代码。代码如下,