cnhefang / image_picker_saver Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Iam testing on Android Q, and the filePath is always empty
V/DartMessenger(27803): Received message from Dart over channel 'plugins.flutter.io/image_picker_saver'
V/DartMessenger(27803): Deferring to registered handler to process message.
I/flutter (27803): saved filePath:
String filePath = await _channel.invokeMethod(
'saveFile',
<String, dynamic>{
'fileData': fileData,
'title': title,
'description': description
},
);
debugPrint("saved filePath:" + filePath); 《======= 这里报错
//process ios return filePath
if(filePath.startsWith("file://")){
filePath=filePath.replaceAll("file://", "");
}
return filePath;
}
iOS 13.1 (17A844)
filePath永远返回为null
我同事说IOS不会返回路径,是这个原因吗?
现在调试一直报错
谢谢
2020-01-02 17:52:35.094731+0800 Runner[3982:988747] Success PHImageFileURLKey (null)
2020-01-02 17:52:35.096814+0800 Runner[3982:988939] [VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: Invalid argument(s)
#0 _StringBase.+ (dart:core-patch/string_patch.dart:265:57)
#1 ImagePickerSaver.saveFile (package:image_picker_saver/image_picker_saver.dart:85:34)
#2 _onCaptureAndSave (package:cloud_intercom/pages/intercom_call_page/effect.dart:46:43)
#3 combineEffects. (package:fish_redux/src/redux_component/helper.dart:74:32)
#4 EnhancerDefault._inverterEffect. (package:fish_redux/src/redux_component/enhancer.dart:117:56)
#5 _pageAnalyticsMiddleware... (package:cloud_intercom/app.dart:136:24)
#6 createEffectDispatch. (package:fish_redux/src/redux_component/helper.dart:89:39)
#7 createDispatch. (package:fish_redux/src/redux_component/helper.dart:109:39)
#8 LogicContext.dispatch (package:fish_redux/src/redux_component/context.dart:77:38)
#9 buildView. (package:cloud_intercom/pages/intercom_call_page/view.dart:82:43)
#10 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:706:14)
#11 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:789:36)
#12 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
#13 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:486:11)
#14 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:264:5)
#15 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:199:7)
#16 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:467:9)
#17 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:76:12)
#18 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:117:9)
#19 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8)
#20 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:115:18)
#21 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:7)
#22 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
#23 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
#24 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
#25 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
#26 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
#27 _rootRunUnary (dart:async/zone.dart:1138:13)
#28 _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#29 _CustomZone.runUnaryGuarded (dart:async/zone.dart:933:7)
#30 _invoke1 (dart:ui/hooks.dart:273:10)
#31 _dispatchPointerDataPacket (dart:ui/hooks.dart:182:5)
See: #2 (comment)
Codes:
import 'package:http/http.dart' as oldHttp;
String path = "http://example.com/generated.mp4";
var response = await oldHttp.get(path);
String filePath =
await ImagePickerSaver.saveFile(fileData: response.bodyBytes);
Error Exception:
V/MediaStore( 6069): Create the thumbnail in memory: origId=373908, kind=1, isVideo=false
I/ExifInterface_JNI( 6069): Raw image not detected
W/ExifInterface( 6069): Invalid image: ExifInterface got an unsupported image format file(ExifInterface supports JPEG and some RAW image formats only) or a corrupted JPEG file to ExifInterface.
W/ExifInterface( 6069): java.io.IOException: Invalid marker: 0
W/ExifInterface( 6069): at android.media.ExifInterface.getJpegAttributes(ExifInterface.java:1835)
W/ExifInterface( 6069): at android.media.ExifInterface.loadAttributes(ExifInterface.java:1475)
W/ExifInterface( 6069): at android.media.ExifInterface.<init>(ExifInterface.java:1112)
W/ExifInterface( 6069): at android.media.ThumbnailUtils.createThumbnailFromEXIF(ThumbnailUtils.java:480)
W/ExifInterface( 6069): at android.media.ThumbnailUtils.createImageThumbnail(ThumbnailUtils.java:97)
W/ExifInterface( 6069): at android.provider.MediaStore$InternalThumbnails.getThumbnail(MediaStore.java:759)
W/ExifInterface( 6069): at android.provider.MediaStore$Images$Thumbnails.getThumbnail(MediaStore.java:1091)
W/ExifInterface( 6069): at io.flutter.plugins.imagepickersaver.CapturePhotoUtils.insertImage(CapturePhotoUtils.java:70)
W/ExifInterface( 6069): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.saveImageToGallery(ImagePickerDelegate.java:285)
W/ExifInterface( 6069): at io.flutter.plugins.imagepickersaver.ImagePickerSaverPlugin.onMethodCall(ImagePickerSaverPlugin.java:84)
W/ExifInterface( 6069): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:200)
W/ExifInterface( 6069): at io.flutter.view.FlutterNativeView$PlatformMessageHandlerImpl.handlePlatformMessage(FlutterNativeView.java:188)
W/ExifInterface( 6069): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:202)
W/ExifInterface( 6069): at android.os.MessageQueue.nativePollOnce(Native Method)
W/ExifInterface( 6069): at android.os.MessageQueue.next(MessageQueue.java:323)
W/ExifInterface( 6069): at android.os.Looper.loop(Looper.java:142)
W/ExifInterface( 6069): at android.app.ActivityThread.main(ActivityThread.java:6358)
W/ExifInterface( 6069): at java.lang.reflect.Method.invoke(Native Method)
W/ExifInterface( 6069): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
W/ExifInterface( 6069): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)
D/skia ( 6069): --- SkAndroidCodec::NewFromStream returned null
Does this not save to Camera Roll or Gallery for Android?
android 10 no longer save success anymore (iOS ok)
save image successful
Success public.png {
PHImageFileDataKey = {length = 253961, bytes = 0x89504e47 0d0a1a0a 0000000d 49484452 ... 49454e44 ae426082 };
PHImageFileOrientationKey = 0;
PHImageFileUTIKey = "public.png";
PHImageResultIsDegradedKey = 0;
PHImageResultRequestIDKey = 5;
}
Success PHImageFileURLKey (null)
flutter: Invalid argument(s)
在 flutter 1.10.14 版本中 ,编译没问题。
在 flutter 1.12.15 版本中
编译apk报错,具体日志
Flutter crash report; please file at https://github.com/flutter/flutter/issues.
flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
ProcessException: ProcessException: Permission denied
Command: /Users/mickeystone/flutter/.pub-cache/hosted/pub.dartlang.org/image_gallery_saver-1.2.2/android/gradlew -I=/Users/mickeystone/flutter/packages/flutter_tools/gradle/aar_init_script.gradle -Pflutter-root=/Users/mickeystone/flutter -Poutput-dir=/Users/mickeystone/wor/flutter_wtf/build/app -Pis-plugin=true -Ptarget-platform=android-arm,android-arm64,android-x64 assembleAarRelease
#0 _DefaultProcessUtils.run (package:flutter_tools/src/base/process.dart:266:37)
<asynchronous suspension>
#1 buildGradleAar (package:flutter_tools/src/android/gradle.dart:548:33)
#2 buildPluginsAsAar (package:flutter_tools/src/android/gradle.dart:711:13)
<asynchronous suspension>
#3 buildGradleApp (package:flutter_tools/src/android/gradle.dart:257:11)
#4 buildGradleApp (package:flutter_tools/src/android/gradle.dart:415:19)
<asynchronous suspension>
#5 _AndroidBuilderImpl.buildApk (package:flutter_tools/src/android/android_builder.dart:97:13)
#6 BuildApkCommand.runCommand (package:flutter_tools/src/commands/build_apk.dart:106:26)
#7 FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:615:18)
<asynchronous suspension>
#8 FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:515:33)
<asynchronous suspension>
#9 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:146:29)
#10 _rootRun (dart:async/zone.dart:1126:13)
#11 _CustomZone.run (dart:async/zone.dart:1023:19)
#12 _runZoned (dart:async/zone.dart:1518:10)
#13 runZoned (dart:async/zone.dart:1465:12)
#14 AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#15 FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:505:20)
#16 CommandRunner.runCommand (package:args/command_runner.dart:197:27)
#17 FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:413:21)
<asynchronous suspension>
#18 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:146:29)
#19 _rootRun (dart:async/zone.dart:1126:13)
#20 _CustomZone.run (dart:async/zone.dart:1023:19)
#21 _runZoned (dart:async/zone.dart:1518:10)
#22 runZoned (dart:async/zone.dart:1465:12)
#23 AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#24 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:364:19)
#25 CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:112:25)
#26 new Future.sync (dart:async/future.dart:224:31)
#27 CommandRunner.run (package:args/command_runner.dart:112:14)
#28 FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:250:18)
#29 run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:63:22)
#30 _rootRun (dart:async/zone.dart:1126:13)
#31 _CustomZone.run (dart:async/zone.dart:1023:19)
#32 _runZoned (dart:async/zone.dart:1518:10)
#33 runZoned (dart:async/zone.dart:1502:12)
#34 run.<anonymous closure> (package:flutter_tools/runner.dart:61:18)
<asynchronous suspension>
#35 AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:146:29)
#36 _rootRun (dart:async/zone.dart:1126:13)
#37 _CustomZone.run (dart:async/zone.dart:1023:19)
#38 _runZoned (dart:async/zone.dart:1518:10)
#39 runZoned (dart:async/zone.dart:1465:12)
#40 AppContext.run (package:flutter_tools/src/base/context.dart:145:18)
#41 runInContext (package:flutter_tools/src/context_runner.dart:64:24)
#42 run (package:flutter_tools/runner.dart:50:10)
#43 main (package:flutter_tools/executable.dart:65:9)
#44 main (file:///Users/mickeystone/flutter/packages/flutter_tools/bin/flutter_tools.dart:8:3)
#45 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:305:32)
#46 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
�[32m[✓]�[39m Flutter (Channel unknown, v1.12.14, on Mac OS X 10.15.1 19B88, locale zh-Hans-PH)
�[32m•�[39m Flutter version 1.12.14 at /Users/mickeystone/flutter
�[32m•�[39m Framework revision 7726910a5b (6 天前), 2019-11-25 16:47:51 -0500
�[32m•�[39m Engine revision c89ac6347b
�[32m•�[39m Dart version 2.7.0
�[32m[✓]�[39m Android toolchain - develop for Android devices (Android SDK version 29.0.2)
�[32m•�[39m Android SDK at /Users/mickeystone/Library/Android/sdk
�[32m•�[39m Android NDK location not configured (optional; useful for native profiling support)
�[32m•�[39m Platform android-29, build-tools 29.0.2
�[32m•�[39m Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
�[32m•�[39m Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
�[32m•�[39m All Android licenses accepted.
�[32m[✓]�[39m Xcode - develop for iOS and macOS (Xcode 11.2.1)
�[32m•�[39m Xcode at /Applications/Xcode.app/Contents/Developer
�[32m•�[39m Xcode 11.2.1, Build version 11B53
�[32m•�[39m CocoaPods version 1.8.4
�[32m[✓]�[39m Android Studio (version 3.5)
�[32m•�[39m Android Studio at /Applications/Android Studio.app/Contents
�[32m•�[39m Flutter plugin version 41.1.2
�[32m•�[39m Dart plugin version 191.8593
�[32m•�[39m Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
�[32m[✓]�[39m IntelliJ IDEA Ultimate Edition (version 2019.3)
�[32m•�[39m IntelliJ at /Users/mickeystone/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
�[32m•�[39m Flutter plugin version 41.1.5
�[32m•�[39m Dart plugin version 193.5432
�[33m[!]�[39m VS Code (version 1.40.1)
�[32m•�[39m VS Code at /Applications/Visual Studio Code.app/Contents
�[31m✗�[39m Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
�[32m[✓]�[39m Connected device (1 available)
�[32m•�[39m iPhone 8 • DD1B2F21-6F6A-474A-908A-3FA5D3EAE79D • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-2 (simulator)
�[33m!�[39m Doctor found issues in 1 category.
大量插件开始支持AndroidX,项目正在迁移到AndroidX库
Exception has occurred.
PlatformException (PlatformException(error, Attempt to invoke virtual method 'java.io.File android.app.Activity.getExternalFilesDir(java.lang.String)' on a null object reference, null))
In the ImagePickerDelegate the same request code is used for requesting the WRITE_EXTERNAL_STORAGE permission in the chooseImageFromGallery() and saveImageToGallery() methods.
This causes a bug that the chooseImageFromGallery flow is resumed when the permission is granted in the saveImageToGallery flow.
I fixed it with a separate request code for both flows.
Here is the fixed version of the ImagePickerDelegate:
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package io.flutter.plugins.imagepickersaver;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.provider.MediaStore;
import androidx.annotation.VisibleForTesting;
import androidx.core.app.ActivityCompat;
import androidx.core.content.FileProvider;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.PluginRegistry;
/**
* A delegate class doing the heavy lifting for the plugin.
* <p>
* <p>When invoked, both the {@link #chooseImageFromGallery} and {@link #takeImageWithCamera}
* methods go through the same steps:
* <p>
* <p>1. Check for an existing {@link #pendingResult}. If a previous pendingResult exists, this
* means that the chooseImageFromGallery() or takeImageWithCamera() method was called at least
* twice. In this case, stop executing and finish with an error.
* <p>
* <p>2. Check that a required runtime permission has been granted. The chooseImageFromGallery()
* method checks if the {@link Manifest.permission#READ_EXTERNAL_STORAGE} permission has been
* granted. Similarly, the takeImageWithCamera() method checks that {@link
* Manifest.permission#CAMERA} has been granted.
* <p>
* <p>The permission check can end up in two different outcomes:
* <p>
* <p>A) If the permission has already been granted, continue with picking the image from gallery or
* camera.
* <p>
* <p>B) If the permission hasn't already been granted, ask for the permission from the user. If the
* user grants the permission, proceed with step #3. If the user denies the permission, stop doing
* anything else and finish with a null result.
* <p>
* <p>3. Launch the gallery or camera for picking the image, depending on whether
* chooseImageFromGallery() or takeImageWithCamera() was called.
* <p>
* <p>This can end up in three different outcomes:
* <p>
* <p>A) User picks an image. No maxWidth or maxHeight was specified when calling {@code
* pickImage()} method in the Dart side of this plugin. Finish with full path for the picked image
* as the result.
* <p>
* <p>B) User picks an image. A maxWidth and/or maxHeight was provided when calling {@code
* pickImage()} method in the Dart side of this plugin. A scaled copy of the image is created.
* Finish with full path for the scaled image as the result.
* <p>
* <p>C) User cancels picking an image. Finish with null result.
*/
public class ImagePickerDelegate
implements PluginRegistry.ActivityResultListener,
PluginRegistry.RequestPermissionsResultListener {
@VisibleForTesting
static final int REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY = 2342;
@VisibleForTesting
static final int REQUEST_CODE_TAKE_IMAGE_WITH_CAMERA = 2343;
@VisibleForTesting
static final int REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION = 2344;
@VisibleForTesting
static final int REQUEST_CAMERA_IMAGE_PERMISSION = 2345;
@VisibleForTesting
static final int REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY = 2352;
@VisibleForTesting
static final int REQUEST_CODE_TAKE_VIDEO_WITH_CAMERA = 2353;
@VisibleForTesting
static final int REQUEST_EXTERNAL_VIDEO_STORAGE_PERMISSION = 2354;
@VisibleForTesting
static final int REQUEST_CAMERA_VIDEO_PERMISSION = 2355;
@VisibleForTesting
static final int REQUEST_EXTERNAL_IMAGE_STORAGE_SAVE_PERMISSION = 2356;
@VisibleForTesting final String fileProviderName;
private final Activity activity;
private final File externalFilesDirectory;
private final ImageResizer imageResizer;
private final PermissionManager permissionManager;
private final IntentResolver intentResolver;
private final FileUriResolver fileUriResolver;
private final FileUtils fileUtils;
interface PermissionManager {
boolean isPermissionGranted(String permissionName);
void askForPermission(String permissionName, int requestCode);
}
interface IntentResolver {
boolean resolveActivity(Intent intent);
}
interface FileUriResolver {
Uri resolveFileProviderUriForFile(String fileProviderName, File imageFile);
void getFullImagePath(Uri imageUri, OnPathReadyListener listener);
}
interface OnPathReadyListener {
void onPathReady(String path);
}
private Uri pendingCameraMediaUri;
private MethodChannel.Result pendingResult;
private MethodCall methodCall;
public ImagePickerDelegate(
final Activity activity, File externalFilesDirectory, ImageResizer imageResizer) {
this(
activity,
externalFilesDirectory,
imageResizer,
null,
null,
new PermissionManager() {
@Override
public boolean isPermissionGranted(String permissionName) {
return ActivityCompat.checkSelfPermission(activity, permissionName)
== PackageManager.PERMISSION_GRANTED;
}
@Override
public void askForPermission(String permissionName, int requestCode) {
ActivityCompat.requestPermissions(activity, new String[]{permissionName}, requestCode);
}
},
new IntentResolver() {
@Override
public boolean resolveActivity(Intent intent) {
return intent.resolveActivity(activity.getPackageManager()) != null;
}
},
new FileUriResolver() {
@Override
public Uri resolveFileProviderUriForFile(String fileProviderName, File file) {
return FileProvider.getUriForFile(activity, fileProviderName, file);
}
@Override
public void getFullImagePath(final Uri imageUri, final OnPathReadyListener listener) {
MediaScannerConnection.scanFile(
activity,
new String[]{imageUri.getPath()},
null,
new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
listener.onPathReady(path);
}
});
}
},
new FileUtils());
}
/**
* This constructor is used exclusively for testing; it can be used to provide mocks to final
* fields of this class. Otherwise those fields would have to be mutable and visible.
*/
@VisibleForTesting
ImagePickerDelegate(
Activity activity,
File externalFilesDirectory,
ImageResizer imageResizer,
MethodChannel.Result result,
MethodCall methodCall,
PermissionManager permissionManager,
IntentResolver intentResolver,
FileUriResolver fileUriResolver,
FileUtils fileUtils) {
this.activity = activity;
this.externalFilesDirectory = externalFilesDirectory;
this.imageResizer = imageResizer;
this.fileProviderName = activity.getPackageName() + ".flutter.image_provider";
this.pendingResult = result;
this.methodCall = methodCall;
this.permissionManager = permissionManager;
this.intentResolver = intentResolver;
this.fileUriResolver = fileUriResolver;
this.fileUtils = fileUtils;
}
public void chooseVideoFromGallery(MethodCall methodCall, MethodChannel.Result result) {
if (!setPendingMethodCallAndResult(methodCall, result)) {
finishWithAlreadyActiveError();
return;
}
if (!permissionManager.isPermissionGranted(Manifest.permission.READ_EXTERNAL_STORAGE)) {
permissionManager.askForPermission(
Manifest.permission.READ_EXTERNAL_STORAGE, REQUEST_EXTERNAL_VIDEO_STORAGE_PERMISSION);
return;
}
launchPickVideoFromGalleryIntent();
}
private void launchPickVideoFromGalleryIntent() {
Intent pickVideoIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickVideoIntent.setType("video/*");
activity.startActivityForResult(pickVideoIntent, REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY);
}
public void takeVideoWithCamera(MethodCall methodCall, MethodChannel.Result result) {
if (!setPendingMethodCallAndResult(methodCall, result)) {
finishWithAlreadyActiveError();
return;
}
if (!permissionManager.isPermissionGranted(Manifest.permission.CAMERA)) {
permissionManager.askForPermission(
Manifest.permission.CAMERA, REQUEST_CAMERA_VIDEO_PERMISSION);
return;
}
launchTakeVideoWithCameraIntent();
}
private void launchTakeVideoWithCameraIntent() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
boolean canTakePhotos = intentResolver.resolveActivity(intent);
if (!canTakePhotos) {
finishWithError("no_available_camera", "No cameras available for taking pictures.");
return;
}
File videoFile = createTemporaryWritableVideoFile();
pendingCameraMediaUri = Uri.parse("file:" + videoFile.getAbsolutePath());
Uri videoUri = fileUriResolver.resolveFileProviderUriForFile(fileProviderName, videoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri);
grantUriPermissions(intent, videoUri);
activity.startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO_WITH_CAMERA);
}
public void chooseImageFromGallery(MethodCall methodCall, MethodChannel.Result result) {
if (!setPendingMethodCallAndResult(methodCall, result)) {
finishWithAlreadyActiveError();
return;
}
if (!permissionManager.isPermissionGranted(Manifest.permission.READ_EXTERNAL_STORAGE)) {
permissionManager.askForPermission(
Manifest.permission.READ_EXTERNAL_STORAGE, REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION);
return;
}
launchPickImageFromGalleryIntent();
}
public void saveImageToGallery(MethodCall methodCall, MethodChannel.Result result) throws IOException {
if (!setPendingMethodCallAndResult(methodCall, result)) {
finishWithAlreadyActiveError();
return;
}
if (!permissionManager.isPermissionGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
permissionManager.askForPermission(
Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_EXTERNAL_IMAGE_STORAGE_SAVE_PERMISSION);
return;
}
saveImageFile();
}
private void saveImageFile() {
byte[] fileData = methodCall.argument("fileData");
//Bitmap bitmap = BitmapFactory.decodeByteArray(fileData, 0, fileData.length);
String filePath = null;
try {
filePath = CapturePhotoUtils.insertImage(activity.getContentResolver(), fileData, "Camera", "123");
} catch (IOException e) {
e.printStackTrace();
}
finishWithSuccess(filePath);
}
private void launchPickImageFromGalleryIntent() {
Intent pickImageIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickImageIntent.setType("image/*");
activity.startActivityForResult(pickImageIntent, REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY);
}
public void takeImageWithCamera(MethodCall methodCall, MethodChannel.Result result) {
if (!setPendingMethodCallAndResult(methodCall, result)) {
finishWithAlreadyActiveError();
return;
}
if (!permissionManager.isPermissionGranted(Manifest.permission.CAMERA)) {
permissionManager.askForPermission(
Manifest.permission.CAMERA, REQUEST_CAMERA_IMAGE_PERMISSION);
return;
}
launchTakeImageWithCameraIntent();
}
private void launchTakeImageWithCameraIntent() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
boolean canTakePhotos = intentResolver.resolveActivity(intent);
if (!canTakePhotos) {
finishWithError("no_available_camera", "No cameras available for taking pictures.");
return;
}
File imageFile = createTemporaryWritableImageFile();
pendingCameraMediaUri = Uri.parse("file:" + imageFile.getAbsolutePath());
Uri imageUri = fileUriResolver.resolveFileProviderUriForFile(fileProviderName, imageFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
grantUriPermissions(intent, imageUri);
activity.startActivityForResult(intent, REQUEST_CODE_TAKE_IMAGE_WITH_CAMERA);
}
private File createTemporaryWritableImageFile() {
return createTemporaryWritableFile(".jpg");
}
private File createTemporaryWritableVideoFile() {
return createTemporaryWritableFile(".mp4");
}
private File createTemporaryWritableFile(String suffix) {
String filename = UUID.randomUUID().toString();
File image;
try {
image = File.createTempFile(filename, suffix, externalFilesDirectory);
} catch (IOException e) {
throw new RuntimeException(e);
}
return image;
}
private void grantUriPermissions(Intent intent, Uri imageUri) {
PackageManager packageManager = activity.getPackageManager();
List<ResolveInfo> compatibleActivities =
packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : compatibleActivities) {
activity.grantUriPermission(
info.activityInfo.packageName,
imageUri,
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
}
@Override
public boolean onRequestPermissionsResult(
int requestCode, String[] permissions, int[] grantResults) {
boolean permissionGranted =
grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
switch (requestCode) {
case REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION:
if (permissionGranted) {
launchPickImageFromGalleryIntent();
}
break;
case REQUEST_EXTERNAL_VIDEO_STORAGE_PERMISSION:
if (permissionGranted) {
launchPickVideoFromGalleryIntent();
}
break;
case REQUEST_CAMERA_IMAGE_PERMISSION:
if (permissionGranted) {
launchTakeImageWithCameraIntent();
}
break;
case REQUEST_CAMERA_VIDEO_PERMISSION:
if (permissionGranted) {
launchTakeVideoWithCameraIntent();
}
break;
case REQUEST_EXTERNAL_IMAGE_STORAGE_SAVE_PERMISSION:
if (permissionGranted) {
saveImageFile();
}
break;
default:
return false;
}
if (!permissionGranted) {
finishWithSuccess(null);
}
return true;
}
@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY:
handleChooseImageResult(resultCode, data);
break;
case REQUEST_CODE_TAKE_IMAGE_WITH_CAMERA:
handleCaptureImageResult(resultCode);
break;
case REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY:
handleChooseVideoResult(resultCode, data);
break;
case REQUEST_CODE_TAKE_VIDEO_WITH_CAMERA:
handleCaptureVideoResult(resultCode);
break;
default:
return false;
}
return true;
}
private void handleChooseImageResult(int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && data != null) {
String path = fileUtils.getPathFromUri(activity, data.getData());
handleImageResult(path);
return;
}
// User cancelled choosing a picture.
finishWithSuccess(null);
}
private void handleChooseVideoResult(int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && data != null) {
String path = fileUtils.getPathFromUri(activity, data.getData());
handleVideoResult(path);
return;
}
// User cancelled choosing a picture.
finishWithSuccess(null);
}
private void handleCaptureImageResult(int resultCode) {
if (resultCode == Activity.RESULT_OK) {
fileUriResolver.getFullImagePath(
pendingCameraMediaUri,
new OnPathReadyListener() {
@Override
public void onPathReady(String path) {
handleImageResult(path);
}
});
return;
}
// User cancelled taking a picture.
finishWithSuccess(null);
}
private void handleCaptureVideoResult(int resultCode) {
if (resultCode == Activity.RESULT_OK) {
fileUriResolver.getFullImagePath(
pendingCameraMediaUri,
new OnPathReadyListener() {
@Override
public void onPathReady(String path) {
handleVideoResult(path);
}
});
return;
}
// User cancelled taking a picture.
finishWithSuccess(null);
}
private void handleImageResult(String path) {
if (pendingResult != null) {
Double maxWidth = methodCall.argument("maxWidth");
Double maxHeight = methodCall.argument("maxHeight");
String finalImagePath = imageResizer.resizeImageIfNeeded(path, maxWidth, maxHeight);
finishWithSuccess(finalImagePath);
} else {
throw new IllegalStateException("Received image from picker that was not requested");
}
}
private void handleVideoResult(String path) {
if (pendingResult != null) {
finishWithSuccess(path);
} else {
throw new IllegalStateException("Received video from picker that was not requested");
}
}
private boolean setPendingMethodCallAndResult(
MethodCall methodCall, MethodChannel.Result result) {
if (pendingResult != null) {
return false;
}
this.methodCall = methodCall;
pendingResult = result;
return true;
}
private void finishWithSuccess(String imagePath) {
pendingResult.success(imagePath);
clearMethodCallAndResult();
}
private void finishWithAlreadyActiveError() {
finishWithError("already_active", "Image picker is already active");
}
private void finishWithError(String errorCode, String errorMessage) {
pendingResult.error(errorCode, errorMessage, null);
clearMethodCallAndResult();
}
private void clearMethodCallAndResult() {
methodCall = null;
pendingResult = null;
}
}
var response = await http.get('https://media2.giphy.com/media/buwxdL6bzFcyc/giphy.gif?cid=ecf05e475d3646a7544b573755d256d6&rid=giphy.gif');
var filePath = await ImagePickerSaver.saveFile(
fileData: response.bodyBytes);
image download is ok. but when i look image in gallery, It dosen't move.
大佬小米保存不到相册看看是不是路径存错了,你写死的吗
how to fix it ?
I/flutter (22005): _onImageSaveButtonPressed http://192.168.0.113:8081/media/uploads/ideaspace/IMG-20190207-WA0014.jpg
I/flutter (22005): 200
D/DecorView(22005): onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@168be4a[MainActivity]
D/AndroidRuntime(22005): Shutting down VM
E/AndroidRuntime(22005): FATAL EXCEPTION: main
E/AndroidRuntime(22005): Process: com.coromandel.ideaspace, PID: 22005
E/AndroidRuntime(22005): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2342, result=0, data=null} to activity {com.coromandel.ideaspace/com.coromandel.ideaspace.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.MethodChannel$Result.success(java.lang.Object)' on a null object reference
E/AndroidRuntime(22005): at android.app.ActivityThread.deliverResults(ActivityThread.java:4496)
E/AndroidRuntime(22005): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4538)
E/AndroidRuntime(22005): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
E/AndroidRuntime(22005): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime(22005): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime(22005): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1906)
E/AndroidRuntime(22005): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(22005): at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime(22005): at android.app.ActivityThread.main(ActivityThread.java:6863)
E/AndroidRuntime(22005): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(22005): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
E/AndroidRuntime(22005): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime(22005): Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void io.flutter.plugin.common.MethodChannel$Result.success(java.lang.Object)' on a null object reference
E/AndroidRuntime(22005): at io.flutter.plugins.imagepicker.ImagePickerDelegate.finishWithSuccess(ImagePickerDelegate.java:481)
E/AndroidRuntime(22005): at io.flutter.plugins.imagepicker.ImagePickerDelegate.handleChooseImageResult(ImagePickerDelegate.java:401)
E/AndroidRuntime(22005): at io.flutter.plugins.imagepicker.ImagePickerDelegate.onActivityResult(ImagePickerDelegate.java:375)
E/AndroidRuntime(22005): at io.flutter.app.FlutterPluginRegistry.onActivityResult(FlutterPluginRegistry.java:210)
E/AndroidRuntime(22005): at io.flutter.app.FlutterActivityDelegate.onActivityResult(FlutterActivityDelegate.java:139)
E/AndroidRuntime(22005): at io.flutter.app.FlutterActivity.onActivityResult(FlutterActivity.java:138)
E/AndroidRuntime(22005): at android.app.Activity.dispatchActivityResult(Activity.java:7476)
E/AndroidRuntime(22005): at android.app.ActivityThread.deliverResults(ActivityThread.java:4489)
E/AndroidRuntime(22005): ... 11 more
D/OSTracker(22005): OS Event: crash
I/Process (22005): Sending signal. PID: 22005 SIG: 9
Lost connection to device.
所有配置都是最新的
[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s) E/flutter (18097): #0 _StringBase.+ (dart:core-patch/string_patch.dart:260:57) E/flutter (18097): #1 ImagePickerSaver.saveFile (package:image_picker_saver/image_picker_saver.dart:85:34)
Am using the permission storage in AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
But the application doesn't ask me for the permission
getting this issue while using image_picker_saver: plugin in flutter : https://stackoverflow.com/questions/54784436/cannot-use-image-picker-saver-plugin-in-flutter
It can not run on flutter projects using androidx
var filePath = await ImagePickerSaver.saveFile( fileData: response.bodyBytes);
这行代码提示异常
First, thanks for your code. I have a question about your code duplication from the good existing plugin.
Why do you need to keep the copy of the code from the image_picker plugin? You need to update it all the time.
Is it possible to leave only the saving feature in your plugin? People can use the existing plugin and extend its functionality with your plugin.
Thanks
How do I install this plug-in?
Excepted Result : should not loose device connection.
Actual Result: loosing device connection as soon as camera activity starts.
Device: Xiaomi Redme Y2,
Camera Activity Code:
image = ImagePicker.pickImage( source: ImageSource.camera); setState(() { image = image; });
[ +30 ms] executing: [C:\flutter] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +68 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +1 ms] 0b8abb4724aa590dd0f429683339b1e045a1594d
[ +6 ms] executing: [C:\flutter] git describe --match v*.. --first-parent --long --tags
[ +49 ms] Exit code 0 from: git describe --match v*.. --first-parent --long --tags
[ +1 ms] v1.12.13+hotfix.8-0-g0b8abb472
[ +9 ms] executing: [C:\flutter] git rev-parse --abbrev-ref --symbolic @{u}
[ +49 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[ ] origin/stable
[ ] executing: [C:\flutter] git ls-remote --get-url origin
[ +36 ms] Exit code 0 from: git ls-remote --get-url origin
[ ] https://github.com/flutter/flutter.git
[ +85 ms] executing: [C:\flutter] git rev-parse --abbrev-ref HEAD
[ +38 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[ ] stable
[ +130 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
[ +27 ms] Exit code 0 from: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe devices -l
[ +5 ms] List of devices attached
12c7f04 device product:ysl model:Redmi_Y2 device:ysl transport_id:1
[ +24 ms] C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell getprop
[ +119 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[ +6 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[ +6 ms] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[ +4 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +53 ms] Found plugin flutter_plugin_android_lifecycle at
C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_plugin_android_lifecycle-1.0.6
[ +23 ms] Found plugin image_picker at C:\flutter.pub-cache\hosted\pub.dartlang.org\image_picker-0.6.4
[ +25 ms] Found plugin shared_preferences at C:\flutter.pub-cache\hosted\pub.dartlang.org\shared_preferences-0.5.6+3
[ +3 ms] Found plugin shared_preferences_macos at C:\flutter.pub-cache\hosted\pub.dartlang.org\shared_preferences_macos-0.0.1+6
[ +15 ms] Found plugin shared_preferences_web at C:\flutter.pub-cache\hosted\pub.dartlang.org\shared_preferences_web-0.1.2+4
[ +120 ms] Found plugin flutter_plugin_android_lifecycle at
C:\flutter.pub-cache\hosted\pub.dartlang.org\flutter_plugin_android_lifecycle-1.0.6
[ +13 ms] Found plugin image_picker at C:\flutter.pub-cache\hosted\pub.dartlang.org\image_picker-0.6.4
[ +12 ms] Found plugin shared_preferences at C:\flutter.pub-cache\hosted\pub.dartlang.org\shared_preferences-0.5.6+3
[ +2 ms] Found plugin shared_preferences_macos at C:\flutter.pub-cache\hosted\pub.dartlang.org\shared_preferences_macos-0.0.1+6
[ +3 ms] Found plugin shared_preferences_web at C:\flutter.pub-cache\hosted\pub.dartlang.org\shared_preferences_web-0.1.2+4
[ +71 ms] Generating F:\flutter project\flutter
project\labhesh_app\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[ +56 ms] ro.hardware = qcom
[ +60 ms] Launching lib\main.dart on Redmi Y2 in debug mode...
[ +9 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\build-tools\29.0.3\aapt dump xmltree F:\flutter project\flutter
project\labhesh_app\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +29 ms] Exit code 0 from: C:\Users\sonu\AppData\Local\Android\Sdk\build-tools\29.0.3\aapt dump xmltree F:\flutter project\flutter
project\labhesh_app\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +3 ms] N: android=http://schemas.android.com/apk/res/android
E: manifest (line=2)
A: android:versionCode(0x0101021b)=(type 0x10)0x1
A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
A: package="com.example.labhesh_app" (Raw: "com.example.labhesh_app")
A: platformBuildVersionCode=(type 0x10)0x1c
A: platformBuildVersionName=(type 0x10)0x9
E: uses-sdk (line=7)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
E: uses-permission (line=14)
A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
E: uses-permission (line=15)
A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA")
E: uses-permission (line=16)
A: android:name(0x01010003)="android.permission.READ_EXTERNAL_STORAGE" (Raw: "android.permission.READ_EXTERNAL_STORAGE") E: uses-permission (line=17)
A: android:name(0x01010003)="android.permission.WRITE_EXTERNAL_STORAGE" (Raw:
"android.permission.WRITE_EXTERNAL_STORAGE")
E: application (line=25)
A: android:label(0x01010001)="labhesh_app" (Raw: "labhesh_app")
A: android:icon(0x01010002)=@0x7f080000
A: android:name(0x01010003)="io.flutter.app.FlutterApplication" (Raw: "io.flutter.app.FlutterApplication")
A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw:
"androidx.core.app.CoreComponentFactory")
E: activity (line=31)
A: android:theme(0x01010000)=@0x7f0a0000
A: android:name(0x01010003)="com.example.labhesh_app.MainActivity" (Raw: "com.example.labhesh_app.MainActivity")
A: android:launchMode(0x0101001d)=(type 0x10)0x1
A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
E: intent-filter (line=38)
E: action (line=39)
A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
E: category (line=41)
A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
E: meta-data (line=48)
A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
A: android:value(0x01010024)=(type 0x10)0x2
E: provider (line=52)
A: android:name(0x01010003)="io.flutter.plugins.imagepicker.ImagePickerFileProvider" (Raw:
"io.flutter.plugins.imagepicker.ImagePickerFileProvider")
A: android:exported(0x01010010)=(type 0x12)0x0
A: android:authorities(0x01010018)="com.example.labhesh_app.flutter.image_provider" (Raw:
"com.example.labhesh_app.flutter.image_provider")
A: android:grantUriPermissions(0x0101001b)=(type 0x12)0xffffffff
E: meta-data (line=57)
A: android:name(0x01010003)="android.support.FILE_PROVIDER_PATHS" (Raw: "android.support.FILE_PROVIDER_PATHS")
A: android:resource(0x01010025)=@0x7f0c0000
[ +27 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell -x logcat -v time -t 1
[ +247 ms] Exit code 0 from: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell -x logcat -v time -t 1
[ +1 ms] --------- beginning of main
03-31 16:12:32.647 I/ConfigStore( 776): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay
retrieved: 0
[ +20 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe version
[ +2 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 logcat -v time -T 03-31 16:12:32.647
[ +44 ms] Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe
[ +4 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe start-server
[ +39 ms] Building APK
[ +21 ms] Running Gradle task 'assembleDebug'...
[ +2 ms] gradle.properties already sets android.enableR8
[ +5 ms] Using gradle from F:\flutter project\flutter project\labhesh_app\android\gradlew.bat.
[ +27 ms] executing: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +102 ms] Exit code 0 from: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +1 ms] openjdk version "1.8.0_152-release"
OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
OpenJDK 64-Bit Server VM (build 25.152-b01, mixed mode)
[ +4 ms] executing: [F:\flutter project\flutter project\labhesh_app\android] F:\flutter project\flutter
project\labhesh_app\android\gradlew.bat -Pverbose=true -Ptarget=F:\flutter project\flutter project\labhesh_app\lib\main.dart
-Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root -Ptarget-platform=android-arm assembleDebug
[+19980 ms] > Task :app:compileFlutterBuildDebug
[ +55 ms] [ +30 ms] executing: [C:\flutter] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +23 ms] [ +80 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[ ] [ ] 0b8abb4724aa590dd0f429683339b1e045a1594d
[ ] [ ] executing: [C:\flutter] git describe --match v*.. --first-parent --long --tags
[ +91 ms] [ +54 ms] Exit code 0 from: git describe --match v*.. --first-parent --long --tags
[ ] [ ] v1.12.13+hotfix.8-0-g0b8abb472
[ ] [ +9 ms] executing: [C:\flutter] git rev-parse --abbrev-ref --symbolic @{u}
[ ] [ +37 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[ ] [ ] origin/stable
[ ] [ ] executing: [C:\flutter] git ls-remote --get-url origin
[ +99 ms] [ +35 ms] Exit code 0 from: git ls-remote --get-url origin
[ +18 ms] [ ] https://github.com/flutter/flutter.git
[ ] [ +85 ms] executing: [C:\flutter] git rev-parse --abbrev-ref HEAD
[ +78 ms] [ +37 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[ ] [ ] stable
[ ] [ +26 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[ +3 ms] [ +4 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[ +1 ms] [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[ ] [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +88 ms] [ +115 ms] Initializing file store
[ +1 ms] [ +22 ms] Done initializing file store
[+1697 ms] [+1621 ms] Skipping target: kernel_snapshot
[ +1 ms] [ +8 ms] invalidated build due to missing files: F:\flutter, project\flutter, project\labhesh_app\pubspec.yaml,
project\labhesh_app\assets\images\background.jpg, project\labhesh_app\assets\images\farmer.png,
project\labhesh_app\assets\images\farmer1.jpg, project\labhesh_app\assets\images\logo.png,
project\labhesh_app\assets\fonts\Raleway\Raleway-Regular.ttf, project\labhesh_app\assets\fonts\Muli\Muli-Regular.ttf
[ +29 ms] [ +47 ms] debug_android_application: Starting due to {InvalidatedReason.outputMissing, InvalidatedReason.inputMissing}
[ +268 ms] [ +238 ms] debug_android_application: Complete
[ +1 ms] [ +7 ms] Persisting file store
[ ] [ +20 ms] Done persisting file store
[ +23 ms] [ +4 ms] build succeeded.
[ +9 ms] [ +19 ms] "flutter assemble" took 2,172ms.
[ +73 ms] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[ +18 ms] > Task :app:preBuild UP-TO-DATE
[ +2 ms] > Task :app:preDebugBuild UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:preBuild UP-TO-DATE
[ +2 ms] > Task :flutter_plugin_android_lifecycle:preDebugBuild UP-TO-DATE
[ ] > Task :image_picker:preBuild UP-TO-DATE
[ +66 ms] > Task :image_picker:preDebugBuild UP-TO-DATE
[ +1 ms] > Task :shared_preferences:preBuild UP-TO-DATE
[ +1 ms] > Task :shared_preferences:preDebugBuild UP-TO-DATE
[ +22 ms] > Task :shared_preferences_macos:preBuild UP-TO-DATE
[ ] > Task :shared_preferences_macos:preDebugBuild UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:compileDebugAidl NO-SOURCE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:compileDebugAidl NO-SOURCE
[ +1 ms] > Task :image_picker:compileDebugAidl NO-SOURCE
[ ] > Task :shared_preferences_web:preBuild UP-TO-DATE
[ ] > Task :shared_preferences_web:preDebugBuild UP-TO-DATE
[ ] > Task :shared_preferences_web:compileDebugAidl NO-SOURCE
[ ] > Task :shared_preferences:compileDebugAidl NO-SOURCE
[ ] > Task :app:compileDebugAidl NO-SOURCE
[ ] > Task :flutter_plugin_android_lifecycle:packageDebugRenderscript NO-SOURCE
[ +21 ms] > Task :image_picker:packageDebugRenderscript NO-SOURCE
[ +1 ms] > Task :shared_preferences:packageDebugRenderscript NO-SOURCE
[ ] > Task :shared_preferences_macos:packageDebugRenderscript NO-SOURCE
[ ] > Task :shared_preferences_web:packageDebugRenderscript NO-SOURCE
[ ] > Task :app:compileDebugRenderscript NO-SOURCE
[ ] > Task :app:checkDebugManifest UP-TO-DATE
[ ] > Task :app:generateDebugBuildConfig UP-TO-DATE
[ ] > Task :app:cleanMergeDebugAssets
[ ] > Task :app:mergeDebugShaders UP-TO-DATE
[ ] > Task :app:compileDebugShaders UP-TO-DATE
[ ] > Task :app:generateDebugAssets UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:mergeDebugShaders UP-TO-DATE
[ +33 ms] > Task :flutter_plugin_android_lifecycle:compileDebugShaders UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:generateDebugAssets UP-TO-DATE
[ +3 ms] > Task :flutter_plugin_android_lifecycle:packageDebugAssets UP-TO-DATE
[ +19 ms] > Task :image_picker:mergeDebugShaders UP-TO-DATE
[ +1 ms] > Task :image_picker:compileDebugShaders UP-TO-DATE
[ ] > Task :image_picker:generateDebugAssets UP-TO-DATE
[ ] > Task :image_picker:packageDebugAssets UP-TO-DATE
[ ] > Task :shared_preferences:mergeDebugShaders UP-TO-DATE
[ ] > Task :shared_preferences:compileDebugShaders UP-TO-DATE
[ ] > Task :shared_preferences:generateDebugAssets UP-TO-DATE
[ ] > Task :shared_preferences:packageDebugAssets UP-TO-DATE
[ ] > Task :shared_preferences_macos:mergeDebugShaders UP-TO-DATE
[ ] > Task :shared_preferences_macos:compileDebugShaders UP-TO-DATE
[ ] > Task :shared_preferences_macos:generateDebugAssets UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:packageDebugAssets UP-TO-DATE
[ ] > Task :shared_preferences_web:mergeDebugShaders UP-TO-DATE
[ ] > Task :shared_preferences_web:compileDebugShaders UP-TO-DATE
[ ] > Task :shared_preferences_web:generateDebugAssets UP-TO-DATE
[ ] > Task :shared_preferences_web:packageDebugAssets UP-TO-DATE
[ ] > Task :app:mergeDebugAssets
[ +168 ms] > Task :app:copyFlutterAssetsDebug
[ +3 ms] > Task :app:mainApkListPersistenceDebug UP-TO-DATE
[ +1 ms] > Task :app:generateDebugResValues UP-TO-DATE
[ +19 ms] > Task :app:generateDebugResources UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:generateDebugResValues UP-TO-DATE
[ ] > Task :image_picker:compileDebugRenderscript NO-SOURCE
[ ] > Task :image_picker:generateDebugResValues UP-TO-DATE
[ ] > Task :image_picker:generateDebugResources UP-TO-DATE
[ +66 ms] > Task :image_picker:packageDebugResources UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:compileDebugRenderscript NO-SOURCE
[ ] > Task :flutter_plugin_android_lifecycle:generateDebugResources UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:packageDebugResources UP-TO-DATE
[ ] > Task :shared_preferences:compileDebugRenderscript NO-SOURCE
[ +1 ms] > Task :shared_preferences:generateDebugResValues UP-TO-DATE
[ +30 ms] > Task :shared_preferences:generateDebugResources UP-TO-DATE
[ +43 ms] > Task :shared_preferences:packageDebugResources UP-TO-DATE
[ ] > Task :shared_preferences_macos:generateDebugResValues UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:compileDebugRenderscript NO-SOURCE
[ ] > Task :shared_preferences_macos:generateDebugResources UP-TO-DATE
[ ] > Task :shared_preferences_macos:packageDebugResources UP-TO-DATE
[ ] > Task :shared_preferences_web:generateDebugResValues UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:compileDebugRenderscript NO-SOURCE
[ ] > Task :shared_preferences_web:generateDebugResources UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:packageDebugResources UP-TO-DATE
[ +112 ms] > Task :app:mergeDebugResources UP-TO-DATE
[ +21 ms] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[ +4 ms] > Task :flutter_plugin_android_lifecycle:checkDebugManifest UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:processDebugManifest UP-TO-DATE
[ ] > Task :image_picker:checkDebugManifest UP-TO-DATE
[ ] > Task :image_picker:processDebugManifest UP-TO-DATE
[ +1 ms] > Task :shared_preferences:checkDebugManifest UP-TO-DATE
[ +73 ms] > Task :shared_preferences:processDebugManifest UP-TO-DATE
[ +35 ms] > Task :shared_preferences_macos:checkDebugManifest UP-TO-DATE
[ +23 ms] > Task :shared_preferences_macos:processDebugManifest UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:checkDebugManifest UP-TO-DATE
[ ] > Task :shared_preferences_web:processDebugManifest UP-TO-DATE
[ ] > Task :app:processDebugManifest UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:parseDebugLibraryResources UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:generateDebugRFile UP-TO-DATE
[ ] > Task :image_picker:parseDebugLibraryResources UP-TO-DATE
[ ] > Task :image_picker:generateDebugRFile UP-TO-DATE
[ ] > Task :shared_preferences:parseDebugLibraryResources UP-TO-DATE
[ ] > Task :shared_preferences_macos:parseDebugLibraryResources UP-TO-DATE
[ ] > Task :shared_preferences_macos:generateDebugRFile UP-TO-DATE
[ ] > Task :shared_preferences_web:parseDebugLibraryResources UP-TO-DATE
[ +2 ms] > Task :shared_preferences_web:generateDebugRFile UP-TO-DATE
[ +41 ms] > Task :shared_preferences:generateDebugRFile UP-TO-DATE
[ +1 ms] > Task :app:processDebugResources UP-TO-DATE
[ +5 ms] > Task :flutter_plugin_android_lifecycle:generateDebugBuildConfig UP-TO-DATE
[ +22 ms] > Task :flutter_plugin_android_lifecycle:javaPreCompileDebug UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:compileDebugJavaWithJavac UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:bundleLibCompileDebug UP-TO-DATE
[ +2 ms] > Task :image_picker:generateDebugBuildConfig UP-TO-DATE
[ +1 ms] > Task :image_picker:javaPreCompileDebug UP-TO-DATE
[ +29 ms] > Task :image_picker:compileDebugJavaWithJavac UP-TO-DATE
[ +1 ms] > Task :image_picker:bundleLibCompileDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences:generateDebugBuildConfig UP-TO-DATE
[ ] > Task :shared_preferences_macos:generateDebugBuildConfig UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:javaPreCompileDebug UP-TO-DATE
[ ] > Task :shared_preferences_macos:compileDebugJavaWithJavac UP-TO-DATE
[ ] > Task :shared_preferences_macos:bundleLibCompileDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:generateDebugBuildConfig UP-TO-DATE
[ ] > Task :shared_preferences_web:javaPreCompileDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:compileDebugJavaWithJavac UP-TO-DATE
[ ] > Task :shared_preferences_web:bundleLibCompileDebug UP-TO-DATE
[ +20 ms] > Task :shared_preferences:javaPreCompileDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences:compileDebugJavaWithJavac UP-TO-DATE
[ ] > Task :shared_preferences:bundleLibCompileDebug UP-TO-DATE
[ ] > Task :app:compileDebugKotlin UP-TO-DATE
[ ] > Task :app:javaPreCompileDebug UP-TO-DATE
[ +1 ms] > Task :app:compileDebugJavaWithJavac UP-TO-DATE
[ ] > Task :app:compileDebugSources UP-TO-DATE
[ ] > Task :app:processDebugJavaRes NO-SOURCE
[ ] > Task :flutter_plugin_android_lifecycle:processDebugJavaRes NO-SOURCE
[ ] > Task :flutter_plugin_android_lifecycle:bundleLibResDebug UP-TO-DATE
[ ] > Task :image_picker:processDebugJavaRes NO-SOURCE
[ ] > Task :image_picker:bundleLibResDebug UP-TO-DATE
[ ] > Task :shared_preferences:processDebugJavaRes NO-SOURCE
[ ] > Task :shared_preferences:bundleLibResDebug UP-TO-DATE
[ ] > Task :shared_preferences_macos:processDebugJavaRes NO-SOURCE
[ ] > Task :shared_preferences_macos:bundleLibResDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:processDebugJavaRes NO-SOURCE
[ ] > Task :shared_preferences_web:bundleLibResDebug UP-TO-DATE
[ ] > Task :app:mergeDebugJavaResource UP-TO-DATE
[ +4 ms] > Task :flutter_plugin_android_lifecycle:bundleLibRuntimeDebug UP-TO-DATE
[ +18 ms] > Task :flutter_plugin_android_lifecycle:createFullJarDebug UP-TO-DATE
[ +1 ms] > Task :image_picker:bundleLibRuntimeDebug UP-TO-DATE
[ ] > Task :image_picker:createFullJarDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:bundleLibRuntimeDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:createFullJarDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:bundleLibRuntimeDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:createFullJarDebug UP-TO-DATE
[ ] > Task :shared_preferences:bundleLibRuntimeDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences:createFullJarDebug UP-TO-DATE
[ ] > Task :app:checkDebugDuplicateClasses UP-TO-DATE
[ ] > Task :app:desugarDebugFileDependencies UP-TO-DATE
[ ] > Task :app:transformClassesWithDexBuilderForDebug UP-TO-DATE
[ +38 ms] > Task :app:mergeExtDexDebug UP-TO-DATE
[ +1 ms] > Task :app:mergeDexDebug UP-TO-DATE
[ ] > Task :app:validateSigningDebug UP-TO-DATE
[ ] > Task :app:signingConfigWriterDebug UP-TO-DATE
[ +1 ms] > Task :app:mergeDebugJniLibFolders UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:mergeDebugJniLibFolders UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:mergeDebugNativeLibs UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:stripDebugDebugSymbols UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
[ +31 ms] > Task :image_picker:mergeDebugJniLibFolders UP-TO-DATE
[ ] > Task :image_picker:mergeDebugNativeLibs UP-TO-DATE
[ ] > Task :image_picker:stripDebugDebugSymbols UP-TO-DATE
[ ] > Task :image_picker:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
[ ] > Task :shared_preferences:mergeDebugJniLibFolders UP-TO-DATE
[ ] > Task :shared_preferences:mergeDebugNativeLibs UP-TO-DATE
[ ] > Task :shared_preferences:stripDebugDebugSymbols UP-TO-DATE
[ ] > Task :shared_preferences:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
[ ] > Task :shared_preferences_macos:mergeDebugJniLibFolders UP-TO-DATE
[ ] > Task :shared_preferences_macos:mergeDebugNativeLibs UP-TO-DATE
[ ] > Task :shared_preferences_macos:stripDebugDebugSymbols UP-TO-DATE
[ ] > Task :shared_preferences_macos:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:mergeDebugJniLibFolders UP-TO-DATE
[ ] > Task :shared_preferences_web:mergeDebugNativeLibs UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:stripDebugDebugSymbols UP-TO-DATE
[ ] > Task :shared_preferences_web:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
[ ] > Task :app:mergeDebugNativeLibs UP-TO-DATE
[ ] > Task :app:stripDebugDebugSymbols UP-TO-DATE
[ +1 ms] Compatible side by side NDK version was not found.
[ ] > Task :app:packageDebug UP-TO-DATE
[ +1 ms] > Task :app:assembleDebug UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:extractDebugAnnotations UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:mergeDebugGeneratedProguardFiles UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:mergeDebugConsumerProguardFiles UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:mergeDebugJavaResource UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:transformNativeLibsWithSyncJniLibsForDebug UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:bundleDebugAar UP-TO-DATE
[ ] > Task :flutter_plugin_android_lifecycle:compileDebugSources UP-TO-DATE
[ +1 ms] > Task :flutter_plugin_android_lifecycle:assembleDebug UP-TO-DATE
[ +1 ms] > Task :image_picker:extractDebugAnnotations UP-TO-DATE
[ ] > Task :image_picker:mergeDebugGeneratedProguardFiles UP-TO-DATE
[ ] > Task :image_picker:mergeDebugConsumerProguardFiles UP-TO-DATE
[ ] > Task :image_picker:prepareLintJarForPublish UP-TO-DATE
[ +1 ms] > Task :image_picker:mergeDebugJavaResource UP-TO-DATE
[ ] > Task :image_picker:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
[ ] > Task :image_picker:transformNativeLibsWithSyncJniLibsForDebug UP-TO-DATE
[ ] > Task :image_picker:bundleDebugAar UP-TO-DATE
[ ] > Task :image_picker:compileDebugSources UP-TO-DATE
[ ] > Task :image_picker:assembleDebug UP-TO-DATE
[ ] > Task :shared_preferences:extractDebugAnnotations UP-TO-DATE
[ ] > Task :shared_preferences:mergeDebugGeneratedProguardFiles UP-TO-DATE
[ ] > Task :shared_preferences:mergeDebugConsumerProguardFiles UP-TO-DATE
[ ] > Task :shared_preferences:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :shared_preferences:mergeDebugJavaResource UP-TO-DATE
[ ] > Task :shared_preferences:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
[ ] > Task :shared_preferences:transformNativeLibsWithSyncJniLibsForDebug UP-TO-DATE
[ ] > Task :shared_preferences:bundleDebugAar UP-TO-DATE
[ ] > Task :shared_preferences:compileDebugSources UP-TO-DATE
[ ] > Task :shared_preferences:assembleDebug UP-TO-DATE
[ ] > Task :shared_preferences_macos:extractDebugAnnotations UP-TO-DATE
[ ] > Task :shared_preferences_macos:mergeDebugGeneratedProguardFiles UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:mergeDebugConsumerProguardFiles UP-TO-DATE
[ ] > Task :shared_preferences_macos:prepareLintJarForPublish UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:mergeDebugJavaResource UP-TO-DATE
[ ] > Task :shared_preferences_macos:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
[ +22 ms] > Task :shared_preferences_macos:transformNativeLibsWithSyncJniLibsForDebug UP-TO-DATE
[ +2 ms] > Task :shared_preferences_macos:bundleDebugAar UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:compileDebugSources UP-TO-DATE
[ +1 ms] > Task :shared_preferences_macos:assembleDebug UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:extractDebugAnnotations UP-TO-DATE
[ ] > Task :shared_preferences_web:mergeDebugGeneratedProguardFiles UP-TO-DATE
[ ] > Task :shared_preferences_web:mergeDebugConsumerProguardFiles UP-TO-DATE
[ +1 ms] > Task :shared_preferences_web:prepareLintJarForPublish UP-TO-DATE
[ ] > Task :shared_preferences_web:mergeDebugJavaResource UP-TO-DATE
[ ] > Task :shared_preferences_web:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:transformNativeLibsWithSyncJniLibsForDebug UP-TO-DATE
[ ] > Task :shared_preferences_web:bundleDebugAar UP-TO-DATE
[ ] > Task :shared_preferences_web:compileDebugSources UP-TO-DATE
[ ] > Task :shared_preferences_web:assembleDebug UP-TO-DATE
[ ] BUILD SUCCESSFUL in 23s
[ ] 170 actionable tasks: 4 executed, 166 up-to-date
[ +310 ms] Running Gradle task 'assembleDebug'... (completed in 24.2s)
[ +46 ms] calculateSha: LocalDirectory: 'F:\flutter project\flutter project\labhesh_app\build\app\outputs\apk'/app.apk
[ +96 ms] calculateSha: reading file took 77us
[ +816 ms] calculateSha: computing sha took 733us
[ +7 ms] √ Built build\app\outputs\apk\debug\app-debug.apk.
[ +5 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\build-tools\29.0.3\aapt dump xmltree F:\flutter project\flutter
project\labhesh_app\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +35 ms] Exit code 0 from: C:\Users\sonu\AppData\Local\Android\Sdk\build-tools\29.0.3\aapt dump xmltree F:\flutter project\flutter
project\labhesh_app\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +1 ms] N: android=http://schemas.android.com/apk/res/android
E: manifest (line=2)
A: android:versionCode(0x0101021b)=(type 0x10)0x1
A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
A: package="com.example.labhesh_app" (Raw: "com.example.labhesh_app")
A: platformBuildVersionCode=(type 0x10)0x1c
A: platformBuildVersionName=(type 0x10)0x9
E: uses-sdk (line=7)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
E: uses-permission (line=14)
A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
E: uses-permission (line=15)
A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA")
E: uses-permission (line=16)
A: android:name(0x01010003)="android.permission.READ_EXTERNAL_STORAGE" (Raw: "android.permission.READ_EXTERNAL_STORAGE") E: uses-permission (line=17)
A: android:name(0x01010003)="android.permission.WRITE_EXTERNAL_STORAGE" (Raw:
"android.permission.WRITE_EXTERNAL_STORAGE")
E: application (line=25)
A: android:label(0x01010001)="labhesh_app" (Raw: "labhesh_app")
A: android:icon(0x01010002)=@0x7f080000
A: android:name(0x01010003)="io.flutter.app.FlutterApplication" (Raw: "io.flutter.app.FlutterApplication")
A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw:
"androidx.core.app.CoreComponentFactory")
E: activity (line=31)
A: android:theme(0x01010000)=@0x7f0a0000
A: android:name(0x01010003)="com.example.labhesh_app.MainActivity" (Raw: "com.example.labhesh_app.MainActivity")
A: android:launchMode(0x0101001d)=(type 0x10)0x1
A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
E: intent-filter (line=38)
E: action (line=39)
A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
E: category (line=41)
A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
E: meta-data (line=48)
A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
A: android:value(0x01010024)=(type 0x10)0x2
E: provider (line=52)
A: android:name(0x01010003)="io.flutter.plugins.imagepicker.ImagePickerFileProvider" (Raw:
"io.flutter.plugins.imagepicker.ImagePickerFileProvider")
A: android:exported(0x01010010)=(type 0x12)0x0
A: android:authorities(0x01010018)="com.example.labhesh_app.flutter.image_provider" (Raw:
"com.example.labhesh_app.flutter.image_provider")
A: android:grantUriPermissions(0x0101001b)=(type 0x12)0xffffffff
E: meta-data (line=57)
A: android:name(0x01010003)="android.support.FILE_PROVIDER_PATHS" (Raw: "android.support.FILE_PROVIDER_PATHS")
A: android:resource(0x01010025)=@0x7f0c0000
[ +81 ms] Stopping app 'app.apk' on Redmi Y2.
[ +1 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell am force-stop
com.example.labhesh_app
[ +168 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell pm list packages
com.example.labhesh_app
[ +121 ms] package:com.example.labhesh_app
[ +7 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell cat
/data/local/tmp/sky.com.example.labhesh_app.sha1
[ +72 ms] 16cffdc60f9e0148cd07fa6910dde5e7aa678c2f
[ +1 ms] Latest build already installed.
[ +1 ms] Redmi Y2 startApp
[ +2 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 shell am start -a
android.intent.action.RUN -f 0x20000000 --ez enable-background-compilation true --ez enable-dart-profiling true --ez enable-checked-mode
true --ez verify-entry-points true com.example.labhesh_app/com.example.labhesh_app.MainActivity
[ +100 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=com.example.labhesh_app/.MainActivity (has extras) }
[ +1 ms] Waiting for observatory port to be available...
[ +666 ms] D/FlutterActivity(13247): Using the launch theme as normal theme.
[ +5 ms] D/FlutterActivityAndFragmentDelegate(13247): Setting up FlutterEngine.
[ +26 ms] D/FlutterActivityAndFragmentDelegate(13247): No preferred FlutterEngine was provided. Creating a new FlutterEngine for this
FlutterFragment.
[ +496 ms] Observatory URL on device: http://127.0.0.1:48962/vDp-bYLTmgs=/
[ +5 ms] executing: C:\Users\sonu\AppData\Local\Android\Sdk\platform-tools\adb.exe -s 12c7f04 forward tcp:0 tcp:48962
[ +3 ms] D/FlutterActivityAndFragmentDelegate(13247): Attaching FlutterEngine to the Activity that owns this Fragment.
[ +49 ms] 53127
[ +1 ms] Forwarded host port 53127 to device port 48962 for Observatory
[ +10 ms] Connecting to service protocol: http://127.0.0.1:53127/vDp-bYLTmgs=/
[ +45 ms] D/FlutterView(13247): Attaching to a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@efc3988
[ +34 ms] D/FlutterActivityAndFragmentDelegate(13247): Executing Dart entrypoint: main, and sending initial route: /
[ +380 ms] Successfully connected to service protocol: http://127.0.0.1:53127/vDp-bYLTmgs=/
[ +9 ms] Sending to VM service: getVM({})
[ +18 ms] Result: {type: VM, name: vm, architectureBits: 32, hostCPU: Qualcomm Technologies, Inc MSM8953, operatingSystem: android,
targetCPU: arm, version: 2.7.0 (Fri Dec 6 16:26:51 2019 +0100) on "android_arm", _profilerMode: VM, _nativeZoneMemoryUsage: 0, pid: 1...
[ +22 ms] Sending to VM service: getIsolate({isolateId: isolates/1949944609224811})
[ +27 ms] Sending to VM service: _flutter.listViews({})
[ +24 ms] Result: {type: FlutterViewList, views: [{type: FlutterView, id: _flutterView/0xa4019190, isolate: {type: @isolate, fixedId:
true, id: isolates/1949944609224811, name: main.dart$main-1949944609224811, number: 1949944609224811}}]}
[ +7 ms] DevFS: Creating new filesystem on the device (null)
[ +1 ms] Sending to VM service: _createDevFS({fsName: labhesh_app})
[ +47 ms] Result: {type: Isolate, id: isolates/1949944609224811, name: main, number: 1949944609224811, _originNumber: 1949944609224811,
startTime: 1585651379796, _heaps: {new: {type: HeapSpace, name: new, vmName: Scavenger, collections: 1, avgCollectionPeriodMillis...
[ +71 ms] Result: {type: FileSystem, name: labhesh_app, uri:
file:///data/user/0/com.example.labhesh_app/code_cache/labhesh_appHAOTHW/labhesh_app/}
[ +2 ms] DevFS: Created new filesystem on the device
(file:///data/user/0/com.example.labhesh_app/code_cache/labhesh_appHAOTHW/labhesh_app/)
[ +3 ms] Updating assets
[ +119 ms] Syncing files to device Redmi Y2...
[ +2 ms] Scanning asset files
[ +5 ms] <- reset
[ ] Compiling dart to kernel with 0 updated files
[ +9 ms] C:\flutter\bin\cache\dart-sdk\bin\dart.exe C:\flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot
--sdk-root C:\flutter\bin\cache\artifacts\engine\common\flutter_patched_sdk/ --incremental --target=flutter
-Ddart.developer.causal_async_stacks=true --output-dill
C:\Users\sonu\AppData\Local\Temp\flutter_tool.5360ce3c-733c-11ea-b72d-7446a0b9aaf1\app.dill --packages F:\flutter project\flutter
project\labhesh_app.packages -Ddart.vm.profile=false -Ddart.vm.product=false
--bytecode-options=source-positions,local-var-info,debugger-stops,instance-field-initializers,keep-unreachable-code,avoid-closure-call-instructions --enable-asserts --track-widget-creation --filesystem-scheme org-dartlang-root
[ +17 ms] <- compile package:labhesh_app/main.dart
[ +200 ms] I/flutter (13247):
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiMjdlM2Y3NzdjMmZlNTQyNjEyODI3ODhmZTk2YmY3MWE0OTA0ZDQ2YTM1YTc3NDljNTY0ZDdjNTJjYzI4MjQ2MTdhNGFkOTJkYmE5OWI4ZjYiLCJpYXQiOjE1ODU2MjIzODksIm5iZiI6MTU4NTYyMjM4OSwiZXhwIjoxNjE3MTU4Mzg4LCJzdWIiOiIxMyIsInNjb3BlcyI6W119.1Q4mzrY6l_DT07XMdjEe3nUhXvw6ByEkjrHSNpObWKEqps55lKMMpj9Ss_yE0oFjdn_ytteOJi3WDArob8t07_qzvaKVhsVrMEajFAgo_SaaEckMfq1ij7PmaKsZqasf99gcTwKUqvMY2U3_P_zjiXlqn14sBu9ug8X2O2oZ8F7rugIQOBa74kIlAmG1pi5yMm-H7fXvJ2mZMYKGU55prYxLicqTiPQwivt4j-xQPwIBLgCVE1RvIdzwuqt983Ej_CitYlwydN1iHmU-iEdf_gV7iISGmyz7ac4kvEn_eGhGGrdAnbppQRhgxphcRLWjKbfGzbWd7EQv_C9nGNxD24uSQa6PwudUcoFzEQ4s7usINLhz0yTLbmzJGI1M53kUkhFJ5YSWoAVNyppk2ecyPvh5gR3DGnIhIadmGlOUvYMdfYLdeguXmq9iXyEt9lzTRGeLpn77XiXgXHtx89pGiWCmBhIb9XKLfRrzxnFf9rwCHTk6xlXSm532Ss9raxzAatCEknEnRmbN4k5eEb3oogzgbr0pnMwJvDm8RA2962FeAUK0mDN2YVpelvB1IEAEl8lNui_1njqjZTGbKt4UqyqtcaNo_VdzUBI3dCuaPWdIb4w8JDGNtb7zMQXQM9mbArGSb-ItoU8g28ihCQPeaj02paYRlQnIEgpCitRoAZc
[+2005 ms] I/flutter (13247): Rajen Trivedi
[ +727 ms] I/flutter (13247): []
[+4353 ms] V/ActivityThread(13247): handleTrimMemory:com.example.labhesh_app
[ +191 ms] Updating files
[ +186 ms] V/ActivityThread(13247): handleTrimMemory:com.example.labhesh_app
[ +298 ms] DevFS: Sync finished
[ +4 ms] Syncing files to device Redmi Y2... (completed in 7,999ms, longer than expected)
[ +39 ms] Synced 3.9MB.
[ +22 ms] Sending to VM service: _flutter.listViews({})
[ +7 ms] Result: {type: FlutterViewList, views: [{type: FlutterView, id: _flutterView/0xa4019190, isolate: {type: @isolate, fixedId:
true, id: isolates/1949944609224811, name: main.dart$main-1949944609224811, number: 1949944609224811}}]}
[ +1 ms] <- accept
[ +1 ms] Connected to _flutterView/0xa4019190.
[ +22 ms] �🔥 To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R
[ +1 ms] An Observatory debugger and profiler on Redmi Y2 is available at: http://127.0.0.1:53127/vDp-bYLTmgs=/
[ +1 ms] For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".
[+3886 ms] I/flutter (13247): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
[ +4 ms] I/flutter (13247): The following NoSuchMethodError was thrown building Consumer(dirty, dependencies:
[ +2 ms] I/flutter (13247): [_DefaultInheritedProviderScope]):
[ +96 ms] I/flutter (13247): The getter 'length' was called on null.
[ +27 ms] I/flutter (13247): Receiver: null
[ +1 ms] I/flutter (13247): Tried calling: length
[ +1 ms] I/flutter (13247):
[ ] I/flutter (13247): The relevant error-causing widget was:
[ ] I/flutter (13247): Consumer
[ ] I/flutter (13247): file:///F:/flutter%20project/flutter%20project/labhesh_app/lib/screen/add_page.dart:287:29
[ ] I/flutter (13247):
[ +20 ms] I/flutter (13247): When the exception was thrown, this was the stack:
[ +1 ms] I/flutter (13247): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
[ ] I/flutter (13247): #1 _AddFarmerState.build..
(package:labhesh_app/screen/add_page.dart:289:50)
[ +1 ms] I/flutter (13247): #2 Consumer.buildWithChild (package:provider/src/consumer.dart:175:12)
[ ] I/flutter (13247): #3 SingleChildStatelessWidget.build (package:nested/nested.dart:260:41)
[ ] I/flutter (13247): #4 StatelessElement.build (package:flutter/src/widgets/framework.dart:4291:28)
[ ] I/flutter (13247): #5 SingleChildStatelessElement.build (package:nested/nested.dart:280:18)
[ ] I/flutter (13247): #6 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
[ ] I/flutter (13247): #7 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
[ ] I/flutter (13247): #8 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
[ ] I/flutter (13247): #9 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
[ ] I/flutter (13247): #10 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:223:11)
[ ] I/flutter (13247): #11 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ ] I/flutter (13247): #12 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ ] I/flutter (13247): #13 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
[ ] I/flutter (13247): #14 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ ] I/flutter (13247): #15 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ ] I/flutter (13247): #16 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
[ +22 ms] I/flutter (13247): #17 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ +1 ms] I/flutter (13247): #18 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ +1 ms] I/flutter (13247): #19 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
[ +1 ms] I/flutter (13247): #20 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
[ ] I/flutter (13247): #21 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
[ +1 ms] I/flutter (13247): #22 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
[ +1 ms] I/flutter (13247): #23 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ ] I/flutter (13247): #24 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ ] I/flutter (13247): #25 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
[ ] I/flutter (13247): #26 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
[ ] I/flutter (13247): #27 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
[ ] I/flutter (13247): #28 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
[ ] I/flutter (13247): #29 ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4617:11)
[ +24 ms] I/flutter (13247): #30 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ +1 ms] I/flutter (13247): #31 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ ] I/flutter (13247): #32 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
[ ] I/flutter (13247): #33 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
[ ] I/flutter (13247): #34 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
[ ] I/flutter (13247): #35 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
[ ] I/flutter (13247): #36 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
[ ] I/flutter (13247): #37 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ ] I/flutter (13247): #38 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ ] I/flutter (13247): #39 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
[ ] I/flutter (13247): #40 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
[ +24 ms] I/flutter (13247): #41 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
[ +1 ms] I/flutter (13247): #42 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
[ +1 ms] I/flutter (13247): #43 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
[ +1 ms] I/flutter (13247): #44 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
[ ] I/flutter (13247): #45 SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1288:36)
[ ] I/flutter (13247): #46 SliverMultiBoxAdaptorElement.createChild.
(package:flutter/src/widgets/sliver.dart:1273:20)
[ +1 ms] I/flutter (13247): #47 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2412:19)
[ ] I/flutter (13247): #48 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1266:11)
[ ] I/flutter (13247): #49 RenderSliverMultiBoxAdaptor._createOrObtainChild.
(package:flutter/src/rendering/sliver_multi_box_adaptor.dart:354:23)
[ +26 ms] I/flutter (13247): #50 RenderObject.invokeLayoutCallback.
(package:flutter/src/rendering/object.dart:1823:58)
[ +1 ms] I/flutter (13247): #51 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:875:15)
[ +1 ms] I/flutter (13247): #52 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1823:13)
[ ] I/flutter (13247): #53 RenderSliverMultiBoxAdaptor._createOrObtainChild
(package:flutter/src/rendering/sliver_multi_box_adaptor.dart:343:5)
[ +1 ms] I/flutter (13247): #54 RenderSliverMultiBoxAdaptor.insertAndLayoutChild
(package:flutter/src/rendering/sliver_multi_box_adaptor.dart:489:5)
[ +1 ms] I/flutter (13247): #55 RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:195:19)
[ ] I/flutter (13247): #56 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:238:19)
[ ] I/flutter (13247): #57 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ +23 ms] I/flutter (13247): #58 RenderSliverEdgeInsetsPadding.performLayout
(package:flutter/src/rendering/sliver_padding.dart:134:11)
[ +2 ms] I/flutter (13247): #59 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:373:11)
[ +1 ms] I/flutter (13247): #60 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #61 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:410:13)
[ ] I/flutter (13247): #62 RenderShrinkWrappingViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1700:12)
[ ] I/flutter (13247): #63 RenderShrinkWrappingViewport.performLayout (package:flutter/src/rendering/viewport.dart:1663:20)
[ ] I/flutter (13247): #64 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #65 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #66 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #67 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ +23 ms] I/flutter (13247): #68 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ +1 ms] I/flutter (13247): #69 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #70 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #71 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #72 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #73 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #74 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #75 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #76 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #77 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #78 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #79 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #80 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #81 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #82 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #83 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:206:11)
[ ] I/flutter (13247): #84 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ +24 ms] I/flutter (13247): #85 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:259:13)
[ +1 ms] I/flutter (13247): #86 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #87 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:163:11)
[ +1 ms] I/flutter (13247): #88 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:477:7)
[ ] I/flutter (13247): #89 MultiChildLayoutDelegate._callPerformLayout
(package:flutter/src/rendering/custom_layout.dart:232:7)
[ +1 ms] I/flutter (13247): #90 RenderCustomMultiChildLayoutBox.performLayout
(package:flutter/src/rendering/custom_layout.dart:391:14)
[ +1 ms] I/flutter (13247): #91 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #92 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ +1 ms] I/flutter (13247): #93 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #94 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ +25 ms] I/flutter (13247): #95 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1232:11)
[ +1 ms] I/flutter (13247): #96 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #97 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #98 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #99 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #100 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #101 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #102 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ +25 ms] I/flutter (13247): #103 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ +1 ms] I/flutter (13247): #104 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #105 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #106 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ +1 ms] I/flutter (13247): #107 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ +1 ms] I/flutter (13247): #108 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #109 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
[ ] I/flutter (13247): #110 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ ] I/flutter (13247): #111 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3166:14)
[ ] I/flutter (13247): #112 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
[ +27 ms] I/flutter (13247): #113 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:505:15)
[ +1 ms] I/flutter (13247): #114 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1584:7)
[ +1 ms] I/flutter (13247): #115 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:844:18)
[ ] I/flutter (13247): #117 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:774:13)
[ +2 ms] I/flutter (13247): #118 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
[ +27 ms] I/flutter (13247): #119 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
[ +1 ms] I/flutter (13247): #120 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
[ ] I/flutter (13247): #121 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:957:5)
[ ] I/flutter (13247): #125 _invoke (dart:ui/hooks.dart:259:10)
[ ] I/flutter (13247): #126 _drawFrame (dart:ui/hooks.dart:217:3)
[ ] I/flutter (13247): (elided 3 frames from package dart:async)
[ +1 ms] I/flutter (13247):
[ +26 ms] I/flutter (13247): ════════════════════════════════════════════════════════════════════════════════════════════════════
[ +2 ms] I/flutter (13247): Another exception was thrown: NoSuchMethodError: The getter 'length' was called on null.
[ +1 ms] V/ActivityThread(13247): handleTrimMemory:com.example.labhesh_app
[ +147 ms] I/flutter (13247): []
[ +62 ms] I/flutter (13247): [{id: 1, type: Makka, created_at: 2020-03-17T07:22:16.000000Z, updated_at: 2020-03-17T07:22:16.000000Z},
{id: 2, type: Bajara, created_at: 2020-03-17T10:23:34.000000Z, updated_at: 2020-03-17T10:23:34.000000Z}, {id: 3, type: Gehu, created_at:
2020-03-17T10:23:41.000000Z, updated_at: 2020-03-17T10:23:41.000000Z}, {id: 4, type: Mausambi, created_at: 2020-03-17T10:23:50.000000Z,
updated_at: 2020-03-17T10:23:50.000000Z}, {id: 5, type: Fruit, created_at: 2020-03-17T10:24:01.000000Z, updated_at:
2020-03-17T10:24:01.000000Z}]
[+3855 ms] I/Timeline(13247): Timeline: Activity_launch_request time:554430752
[+1084 ms] D/FlutterView(13247): Detaching from a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@efc3988
[ +45 ms] V/ActivityThread(13247): handleTrimMemory:com.example.labhesh_app
[ +577 ms] Service protocol connection closed.
[ +2 ms] Lost connection to device.
[ +3 ms] DevFS: Deleting filesystem on the device
(file:///data/user/0/com.example.labhesh_app/code_cache/labhesh_appHAOTHW/labhesh_app/)
[ +29 ms] Sending to VM service: _deleteDevFS({fsName: labhesh_app})
[ +256 ms] Ignored error while cleaning up DevFS: TimeoutException after 0:00:00.250000: Future not completed
[ +39 ms] "flutter run" took 47,821ms.
Analyzing labhesh_app...
No issues found! (ran in 45.0s)
[√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18362.239], locale en-IN)
• Flutter version 1.12.13+hotfix.8 at C:\flutter
• Framework revision 0b8abb4724 (7 weeks ago), 2020-02-11 11:44:36 -0800
• Engine revision e1e6ced81d
• Dart version 2.7.0
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at C:\Users\sonu\AppData\Local\Android\Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.3
• ANDROID_HOME = C:\Users\sonu\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.
[√] Android Studio (version 3.4)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 39.0.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
[√] VS Code (version 1.43.2)
• VS Code at C:\Users\sonu\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.8.1
[√] Connected device (1 available)
• Redmi Y2 • 12c7f04 • android-arm • Android 9 (API 28)
* What went wrong:
A problem occurred configuring project ':image_picker_saver'.
> Could not resolve all files for configuration ':image_picker_saver:classpath'.
> Could not download kotlin-stdlib.jar (org.jetbrains.kotlin:kotlin-stdlib:1.2.20)
> Could not get resource
'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.20/kotlin-stdlib-1.2.2
0.jar'.
> Read timed out
when using
image_picker_saver:
git: https://github.com/cnhefang/image_picker_saver
我想每次保存图片都覆盖前一张,怎么固定保存图片的名称?
I have executed the code in example/lib/main.dart . And some error has appeared.
var filePath =await ImagePickerSaver.saveFile(fileData: pngBytes);
var savedFile= File.fromUri(Uri.file(filePath));
setState(() {
_imageFile = Future<File>.sync(() => savedFile);
});
I think it would be better to return file ? same with video ? It's my approach
image_picker_saver.dart
static Future<File> saveFile({
@required Uint8List fileData
}) async {
assert(fileData != null);
final String path = await _channel.invokeMethod(
'saveFile',
<String, dynamic>{
'fileData': fileData,
},
);
return path == null ? null : new File(path) ;
}
main.dart
var filePath = await ImagePickerSaver.saveFile(fileData: response.bodyBytes);
var savedFile= File.fromUri(Uri.file(filePath.path));
setState(() {
_imageFile = Future<File>.sync(() => savedFile);
});
如题,不是0.3.0才迁移androidx么?
大家别用这个库了!和image_picker冲突,会导致选图片的时候闪退,我调试了整整一下午才找出这个问题,太坑了!!
Hi, thanks for contributing this lib. With this library, I cannot find a way to do save image and save video with an Album name (just sub-folder). Could you help?
For example, GallerySaver package can specify album name like "GallerySaver.saveImage(Image.path, albumName: albumName). But I don't like GallerySaver, it somehow has compatibility issue with my app. Will you be possible to support the useful album-name feature?
我用两个ios的测试手机进行测试:
在 ios12.4.6 上:
var filePath = await ImagePickerSaver.saveFile(fileData: data);
这行代码可以正常执行,并可以获取到filePath
在ios13.2.3上
var filePath = await ImagePickerSaver.saveFile(fileData: data);
这行代码执行完,没有继续向下执行,图片保持了,但是没法取到filePath
Dear Team,
I am using your plugin in one of my flutter application. its working fine in below ios13. However after upgrading to ios13 its giving below error. kindly suggest a solution to fix
code:
final byteData = await image.toByteData(format: ImageByteFormat.png);
Uint8List pngBytes = byteData.buffer.asUint8List();
var filePath = await ImagePickerSaver.saveFile(fileData: pngBytes);
Flutter Version:
Flutter 1.9.1+hotfix.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 2d2a1ffec9 (3 weeks ago) • 2019-09-06 18:39:49 -0700
Engine • revision b863200c37
Tools • Dart 2.5.0
Flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.6 18G95, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.38.1)
[✓] Connected device (1 available)
• No issues found!
Xcode Log:
unner[32641:729850] save image successful
2019-09-26 09:37:58.007237+0300 Runner[32641:729850] [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=7 "(null)""
2019-09-26 09:37:58.041160+0300 Runner[32641:729723] Success public.png {
PHImageFileDataKey = {length = 1715209, bytes = 0x89504e47 0d0a1a0a 0000000d 49484452 ... 49454e44 ae426082 };
PHImageFileOrientationKey = 0;
PHImageFileUTIKey = "public.png";
PHImageResultIsDegradedKey = 0;
PHImageResultRequestIDKey = 1;
}
2019-09-26 09:37:58.041279+0300 Runner[32641:729723] Success PHImageFileURLKey (null)
2019-09-26 09:37:58.044804+0300 Runner[32641:729862] [VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s)
#0 _StringBase.+ (dart:core-patch/string_patch.dart:263:57)
#1 ImagePickerSaver.saveFile (package:image_picker_saver/image_picker_saver.dart:85:34)
#2 saveImageAndBytes (package:contract_followup_app/util/image_util.dart:38:43)
#3 _BoardWdigetState._takeScreenshot (package:contract_followup_app/widgets/board_widget.dart:237:5)
#4 _BoardWdigetState._setupEvent. (package:contract_followup_app/widgets/board_widget.dart:110:9)
#5 _rootRunUnary (dart:async/zone.dart:1132:38)
#6 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#7 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
#8 CastStreamSubscription._onData (dart:_internal/async_cast.dart:81:11)
#9 _rootRunUnary (dart:async/zone.dart:1132:38)
#10 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#11 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
#12 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#13 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:263:7)
#14 _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:132:11)
#15 _WhereStream._handleData (dart:async/stream_pipe.dart:207:12)
#16 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:164:13)
#17 _rootRunUnary (dart:async/zone.dart:1132:38)
#18 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#19 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
#20 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:336:11)
#21 _DelayedData.perform (dart:async/stream_impl.dart:591:14)
#22 _StreamImplEvents.handleNext (dart:async/stream_impl.dart:707:11)
#23 _PendingEvents.schedule. (dart:async/stream_impl.dart:667:7)
#24 _rootRun (dart:async/zone.dart:1120:38)
#25 _CustomZone.run (dart:async/zone.dart:1021:19)
#26 _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#27 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:963:23)
#28 _rootRun (dart:async/zone.dart:1124:13)
#29 _CustomZone.run (dart:async/zone.dart:1021:19)
#30 _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#31 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:963:23)
#32 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#33 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
flutter: focusnode changed
Performing hot reload... ⣟flutter: controller changed
flutter: focusnode changed
⣯flutter: controller changed
flutter: focusnode changed
flutter: controller changed
flutter: focusnode changed
flutter: controller changed
flutter: focusnode changed
flutter: controller changed
flutter: focusnode changed
Reloaded 2 of 454 libraries in 1,827ms.
Lost connection to device.
The latest Flutter/Dart update (Flutter 1.7.8+hotfix.3) broke something and the Future never resolves when trying to get a photo from the Gallery or the Camera. Can someone help me do something to fix this? Thank you in advance!
D/skia ( 6513): Shader compilation error
D/skia ( 6513): ------------------------
D/skia ( 6513): Errors:
D/skia ( 6513):
W/Binder ( 6513): Caught a RuntimeException from the binder stub implementation.
W/Binder ( 6513): java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: Binder:6513_1
W/Binder ( 6513): at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:794)
W/Binder ( 6513): at io.flutter.embedding.engine.FlutterJNI.invokePlatformMessageResponseCallback(FlutterJNI.java:727)
W/Binder ( 6513): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:140)
W/Binder ( 6513): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:225)
W/Binder ( 6513): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.finishWithSuccess(ImagePickerDelegate.java:515)
W/Binder ( 6513): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.handleImageResult(ImagePickerDelegate.java:489)
W/Binder ( 6513): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.access$000(ImagePickerDelegate.java:67)
W/Binder ( 6513): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate$4.onPathReady(ImagePickerDelegate.java:456)
W/Binder ( 6513): at io.flutter.plugins.imagepickersaver.ImagePickerDelegate$3$1.onScanCompleted(ImagePickerDelegate.java:163)
W/Binder ( 6513): at android.media.MediaScannerConnection$ClientProxy.onScanCompleted(MediaScannerConnection.java:204)
W/Binder ( 6513): at android.media.MediaScannerConnection$1.scanCompleted(MediaScannerConnection.java:53)
W/Binder ( 6513): at android.media.IMediaScannerListener$Stub.onTransact(IMediaScannerListener.java:61)
W/Binder ( 6513): at android.os.Binder.execTransact(Binder.java:731)
2019-09-23 18:06:57.896 10818-10818/com.quwan.app.micgame_internal W/MediaStore: Failed to obtain thumbnail for content://media/external/images/media/2375
java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:149)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1711)
at android.content.ContentResolver.openTypedAssetFile(ContentResolver.java:1616)
at android.content.ContentResolver.lambda$loadThumbnail$0(ContentResolver.java:3614)
at android.content.-$$Lambda$ContentResolver$7ILY1SWNxC2xhk-fQUG6tAXW9Ik.call(Unknown Source:10)
at android.graphics.ImageDecoder$CallableSource.createImageDecoder(ImageDecoder.java:555)
at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1859)
at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1852)
at android.content.ContentResolver.loadThumbnail(ContentResolver.java:3613)
at android.content.ContentResolver.loadThumbnail(ContentResolver.java:3597)
at android.provider.MediaStore$InternalThumbnails.getThumbnail(MediaStore.java:1553)
at android.provider.MediaStore$Images$Thumbnails.getThumbnail(MediaStore.java:1922)
at io.flutter.plugins.imagepickersaver.CapturePhotoUtils.insertImage(CapturePhotoUtils.java:70)
at io.flutter.plugins.imagepickersaver.ImagePickerDelegate.saveImageToGallery(ImagePickerDelegate.java:289)
at io.flutter.plugins.imagepickersaver.ImagePickerSaverPlugin.onMethodCall(ImagePickerSaverPlugin.java:84)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:222)
at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:96)
at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:643)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:340)
at android.os.Looper.loop(Looper.java:183)
at android.app.ActivityThread.main(ActivityThread.java:7612)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1004)
好像是因为不是保存到了系统默认相册
Hello, i am having the following exception when trying to develop with the plugin
MissingPluginException(No implementation found for method saveFile on channel plugins.flutter.io/image_picker_saver
i have included these permissions in my android manifest
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
and according to some suggestions i have repeatedly run flutter clean and flutter run but the problem persists, please assist. thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.