gpt4 book ai didi

android - Flutter 图像选择器崩溃

转载 作者:行者123 更新时间:2023-12-04 23:39:36 31 4
gpt4 key购买 nike

我想问一下,您是否曾经在使用 image_picker 从图库/相机中选择图像后遇到应用程序崩溃的情况Android上的插件版本0.6.3+4?已经搜索了 1 周的答案并且没有答案可以帮助我,因为我认为这是我的项目存在一些兼容性问题。

这是我的情况。在我的原始项目中,应用程序总是在从图库/相机中选择图像后立即崩溃,但是如果我将插件用于一个新的干净项目,只有一个带有 onPress 功能的按钮来选择图像,它可以工作,不会发生崩溃.

所以也许我认为在我原来的项目中有些东西导致了这个崩溃的发生。这是关于我如何使用 image_picker 的代码

  imageSelectorGallery() async {
fileProfilePicture = await ImagePicker.pickImage(
source: ImageSource.gallery,
);

if(fileProfilePicture != null) {
setState(() {
uploadPicture();
});
}
}

该小部件调用该函数
new GestureDetector(
onTap: () {
imageSelectorGallery();
},
child: new Container(
child: new Column(
children: <Widget>[
new Container(
width: 50,
height: 50,
decoration: BoxDecoration(
color: Colors.blue,
shape: BoxShape.circle,
),
child: new Icon(
FontAwesomeIcons.image,
size: 22.0,
color: Colors.white
),
),
new Padding(padding: EdgeInsets.symmetric(vertical: 3.0)),
new Text(
"Gallery",
style: new TextStyle(
color: Colors.black,
fontSize: 12.0,
),
),
],
),
),
)

当然,有一个相机按钮调用另一个类似的功能来从相机拍摄图像,但我认为如果我添加它会太长,而且它们都会导致相同的崩溃。

这是我在项目中使用的插件列表,我不知道是否有一些插件不能一起使用,但我希望这可以让我的问题更清楚。
  http: ^0.12.0+2
font_awesome_flutter: ^8.5.0
flutter_calendar_carousel: 1.3.16
bubble_tab_indicator: "^0.1.4"
chewie: ^0.9.7
video_player: ^0.10.1+3
toast: ^0.1.3
shimmer: ^1.0.0
flutter_responsive_screen: ^1.0.0
flutter_webview_plugin: ^0.3.7
webview_flutter: ^0.3.19+8
audioplayer: 0.5.2
image_picker: ^0.6.3+4
shared_preferences: ^0.5.3+4
sticky_headers: "^0.1.8"
flutter_speed_dial: ^1.2.1
url_launcher: ^5.1.2
image_picker_saver: ^0.3.0
smooth_star_rating: ^1.0.3
flutter_secure_storage: ^3.3.1+1
flutter_datetime_picker: ^1.2.8
flutter_launcher_icons: "^0.7.3"
youtube_player: ^3.5.0
youtube_player_flutter: ^6.0.3+2
wakelock: ^0.1.3+4

这是画廊打开之前直到应用程序崩溃之后的日志。
D/ViewRootImpl@e8d5055[MainActivity](19819): ViewPostIme pointer 0
D/ViewRootImpl@e8d5055[MainActivity](19819): ViewPostIme pointer 1
D/ViewRootImpl@e8d5055[MainActivity](19819): MSG_WINDOW_FOCUS_CHANGED 0 1
D/InputMethodManager(19819): prepareNavigationBarInfo() DecorView@7634a6a[MainActivity]
D/InputMethodManager(19819): getNavigationBarColor() -855310
D/SurfaceView(19819): onWindowVisibilityChanged(8) false io.flutter.embedding.android.FlutterSurfaceView{9f9cd1 V.E...... ........ 0,0-1080,1920} of ViewRootImpl@e8d5055[MainActivity]
D/SurfaceView(19819): show() Surface(name=SurfaceView - com.example.test_new_image_picker/com.example.test_new_image_picker.MainActivity@9f9cd1@1[19819])/@0x7cc5bde io.flutter.embedding.android.FlutterSurfaceView{9f9cd1 V.E...... ........ 0,0-1080,1920}
D/SurfaceView(19819): surfaceDestroyed callback.size 1 #2 io.flutter.embedding.android.FlutterSurfaceView{9f9cd1 V.E...... ........ 0,0-1080,1920}
W/libEGL (19819): EGLNativeWindowType 0xd622b808 disconnect failed
D/SurfaceView(19819): destroy() Surface(name=SurfaceView - com.example.test_new_image_picker/com.example.test_new_image_picker.MainActivity@9f9cd1@1[19819])/@0x7cc5bde io.flutter.embedding.android.FlutterSurfaceView{9f9cd1 V.E...... ........ 0,0-1080,1920}
W/libEGL (19819): EGLNativeWindowType 0xd622b008 disconnect failed
D/OpenGLRenderer(19819): eglDestroySurface = 0xf0c74920, 0xd622b000
D/ViewRootImpl@e8d5055[MainActivity](19819): Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x5 surface={false 0} changed=true
D/InputTransport(19819): Input channel destroyed: fd=95
D/ViewRootImpl@e8d5055[MainActivity](19819): stopped(true) old=false
D/SurfaceView(19819): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{9f9cd1 V.E...... ........ 0,0-1080,1920} of ViewRootImpl@e8d5055[MainActivity]
D/FlutterView(19819): Detaching from a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@53149bd
D/SurfaceView(19819): onWindowVisibilityChanged(4) false io.flutter.embedding.android.FlutterSurfaceView{9f9cd1 V.E...... .......D 0,0-1080,1920} of ViewRootImpl@e8d5055[MainActivity]
D/ViewRootImpl@e8d5055[MainActivity](19819): Relayout returned: old=[0,0][1080,1920] new=[0,0][1080,1920] result=0x1 surface={false 0} changed=false
D/AndroidRuntime(19819): Shutting down VM
E/AndroidRuntime(19819): FATAL EXCEPTION: main
E/AndroidRuntime(19819): Process: com.example.test_new_image_picker, PID: 19819
E/AndroidRuntime(19819): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2342, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:8411 flg=0x1 }} to activity {com.example.test_new_image_picker/com.example.test_new_image_picker.MainActivity}: java.lang.IllegalStateException: Received image from picker that was not requested
E/AndroidRuntime(19819): at android.app.ActivityThread.deliverResults(ActivityThread.java:4643)
E/AndroidRuntime(19819): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4685)
E/AndroidRuntime(19819): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
E/AndroidRuntime(19819): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime(19819): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime(19819): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1970)
E/AndroidRuntime(19819): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(19819): at android.os.Looper.loop(Looper.java:214)
E/AndroidRuntime(19819): at android.app.ActivityThread.main(ActivityThread.java:7156)
E/AndroidRuntime(19819): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(19819): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
E/AndroidRuntime(19819): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
E/AndroidRuntime(19819): Caused by: java.lang.IllegalStateException: Received image from picker that was not requested
E/AndroidRuntime(19819): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.handleImageResult(ImagePickerDelegate.java:495)
E/AndroidRuntime(19819): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.handleChooseImageResult(ImagePickerDelegate.java:434)
E/AndroidRuntime(19819): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.onActivityResult(ImagePickerDelegate.java:413)
E/AndroidRuntime(19819): at io.flutter.embedding.engine.FlutterEnginePluginRegistry$FlutterEngineActivityPluginBinding.onActivityResult(FlutterEnginePluginRegistry.java:634)
E/AndroidRuntime(19819): at io.flutter.embedding.engine.FlutterEnginePluginRegistry.onActivityResult(FlutterEnginePluginRegistry.java:367)
E/AndroidRuntime(19819): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onActivityResult(FlutterActivityAndFragmentDelegate.java:546)
E/AndroidRuntime(19819): at io.flutter.embedding.android.FlutterActivity.onActivityResult(FlutterActivity.java:594)
E/AndroidRuntime(19819): at android.app.Activity.dispatchActivityResult(Activity.java:7791)
E/AndroidRuntime(19819): at android.app.ActivityThread.deliverResults(ActivityThread.java:4636)
E/AndroidRuntime(19819): ... 11 more
I/Process (19819): Sending signal. PID: 19819 SIG: 9
Lost connection to device.

我在 build.gradle 上使用 minSdk 21 和 targetSdk 28,我在我的 AndroidManifest 上使用了所有这些权限
    <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.hardware.camera.autofocus"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

所以哪位知道这个问题以及如何解决的请告诉我,谢谢。真的很感激。 :)

最佳答案

发现问题了,最新版本的 Flutter 在 stable channel 1.12.13+hotfix.9 上,你不能同时使用插件 image_picker 和 image_picker_saver,仍然不知道为什么,但是你可以在这个答案中添加评论如果你知道吗,谢谢。

关于android - Flutter 图像选择器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60925195/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com