如何在同一项目中同时使用 "Image_picker" 和 "shared_preferences"

How to use "Image_picker" and "shared_preferences" together in the same project

当我删除“Image_picker”时,应用程序工作正常dependency.When我添加回“shared_preferences”时出现错误。

flutter 运行 --release --verbose

启动应用程序和我想使用“shared_preferences”时显示此错误。

[+8288 ms] E/flutter (10416): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: MissingPluginException(No implementation found
for method getAll on channel plugins.flutter.io/shared_preferences)

"Image_picke" 给出了这个错误。

[   +2 ms] E/flutter (10872): 
[+18180 ms] E/flutter (10872): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(already_active, Image picker
is already active, null, null)
[   +3 ms] E/flutter (10872): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:581)
[   +1 ms] E/flutter (10872): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:158)
[   +1 ms] E/flutter (10872): <asynchronous suspension>
[   +2 ms] E/flutter (10872): #2      MethodChannelImagePicker.pickImage
(package:image_picker_platform_interface/src/method_channel/method_channel_image_picker.dart:29)
[   +2 ms] E/flutter (10872): <asynchronous suspension>
[   +1 ms] E/flutter (10872): #3      _PhotoAndNameState.takePicture (package:jokesapp/photoAndName.dart:22)
[   +1 ms] E/flutter (10872): <asynchronous suspension>
[   +2 ms] E/flutter (10872): 

如果我删除依赖项“Image_picker”,错误就修复了。但我必须使用“Image_picker”

https://github.com/flutter/flutter/issues/40339 这个issues里有人提到了这个。 我更好的建议是使用自己的渠道从原生中选择图像而不是使用第三方库,因为有时你可能会遇到插件问题无法解决,需要等到插件得到更新。最近我在使用 permission_handler 和 image_picker 时遇到了权限问题,permission_handler 我用于麦克风访问,而 image_picker 将有他们的自己的权限检查器。因此,当我们在项目中包含这两个库时,由于 OnRequest 和 OnActivity 的 Override 方法,只有一个库可以工作。 image_picker 仅在调试模式下适用于 android 10。

但我听不懂他在说什么。因为我要发布我的应用程序,所以“image_picker”对我来说是一个更安全的选择。

我几天前解决了这个问题。 Gradle 版本通过新更新变为 4.1.0。“Image_picker”依赖项在 Gradle 4.1.0 version.Also 中不起作用,当它与“shared_preferences" 依赖项,"shared_preferences" 依赖项也不会 work.After 从项目中删除 "image_picker",当我们包含时,"shared_preferences" 有效 correctly.So由于 OnRequest 和 OnActivity 的 Override 方法,项目中的两个库只有一个库可以工作。

了解更多信息。 #40339

解决方案

抱歉,唯一的解决办法是删除 gradle 版本。

classpath 'com.android.tools.build:gradle:3.5.4'

我制作了 gradle 版本 3.5.4,现在一切正常。 降低Gradle版本后,如果出现NDK错误,请同时降低NDK版本。 #76393