am15h / object_detection_flutter Goto Github PK
View Code? Open in Web Editor NEWTruly realtime object-detection in flutter
Truly realtime object-detection in flutter
I'm not sure if this is a result of null safety issues or from outdated flutter code, but after I tried upgrading this repo myself to sound null safety, when I run the camera preview, there are no predictions outputted by the model.
I have followed everything in the article / blog but when I have the camera open on the HomeView, I don't see any bounding boxes when I go near any objects, and I just see a camera preview.
Is anyone else experiencing this issue? I have not attached any logs because the issue is that I can't see anything outputted.
I have cloned and made adjustments to your code to have my model work; however, I am having issues using such a model since it requires a floating-point image to be inputted. Any ideas, how I can solve this? I will post more if needed or asked.
Hi, on the PR #4 @bazinac made the conversion work on iOS
But @tomk9 mentioned this issue:
@bazinac I tested your PR and bounding boxes are shifted on iOS.
Android | iOS |
---|---|
Originally posted by @tomk9 in #4 (comment)
And the probable cause:
Probably my problem with iOS is caused by this statement
Originally posted by @tomk9 in #4 (comment)
I'm dealing with the same issue. anyone have any idea how to solve this issue?
Hello there,
I have been trying to implement this code for my custom model which uses YoloV3. When I get to the _outputShapes part, I get an error since the default model and mine aren't compatible.
The default model's output shape looks like this: [[1, 10, 4], [1, 10], [1, 10], [1]]
My model's output shape on the other hand, looks like this: [[1, 10647, 6]]
Here is where the problem is. I need to convert this part of code for my model.
TensorBuffer outputLocations = TensorBufferFloat(_outputShapes[0]);
TensorBuffer outputClasses = TensorBufferFloat(_outputShapes[1]);
TensorBuffer outputScores = TensorBufferFloat(_outputShapes[2]);
TensorBuffer numLocations = TensorBufferFloat(_outputShapes[3]);
What do I need to do in order for my custom model to work?
Hi,
I recently migrated the TensorFlow lite packages to the lates version and I noticed this issue.
On the camera_view.dart
cameraController = CameraController(cameras[0], ResolutionPreset.low, enableAudio: false);
cameraController = CameraController(cameras[0], ResolutionPreset.medium, enableAudio: false);
cameraController = CameraController(cameras[0], ResolutionPreset.high, enableAudio: false);
The updated pubspec.yaml
camera: ^0.8.1+3
tflite_flutter: ^0.9.0
tflite_flutter_helper: ^0.3.0
image: ^3.0.8
path_provider: ^2.0.1
image_picker: ^0.7.3
That is nice example, but it does not run on iOS as ImageUtils.convertYUV420ToImage is failing with
2020-09-17 00:03:40.267607+0200 Runner[562:53623] Metal GPU Frame Capture Enabled
2020-09-17 00:03:40.267755+0200 Runner[562:53623] Metal API Validation Enabled
2020-09-17 00:03:40.374333+0200 Runner[562:53885] flutter: Observatory listening on http://127.0.0.1:53498/i9mCuWLFiB0=/
2020-09-17 00:03:40.974505+0200 Runner[562:53874] Initialized TensorFlow Lite runtime.
2020-09-17 00:03:41.344477+0200 Runner[562:53913] [VERBOSE-2:dart_isolate.cc(865)] Unhandled exception:
RangeError (index): Invalid value: Only valid value is 0: 1
#0 List.[] (dart:core-patch/array.dart:180:52)
#1 (package:object_detection/utils/image_utils.dart:14:47)
#2 IsolateUtils.entryPoint (package:object_detection/utils/isolate_utils.dart:41:24)
#3 _RootZone.runUnary (dart:async/zone.dart:1450:54)
#4 _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
#5 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
#6 Future._propagateToListeners (dart:async/future_impl.dart:725:32)
#7 Future._complete (dart:async/future_impl.dart:519:7)
#8 _StreamIterator._onData (dart:async/stream_impl.dart:1070:20)
#9 _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
#10 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
#11 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
#12 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
#13 _StreamController._add (dart:async/stream_controller.dart:682:7)
#14 _StreamController.add (dart:async/stream_controller.dart:624:5)
#15 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
2020-09-17 00:03:43.965199+0200 Runner[562:53874] [VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: CameraException(A camera has started streaming images., startImageStream was called while a camera was streaming images.)
Camera preview starts, but it seems that classifier is not obtaining any images due to this...
EDIT: Ok, I have found that this is caused by the fact that in iOS, cameraImage.format is bgra8888.
and android cameraImage.format, it is yuv420. I will try to provide code that would handle images based on what platform it runs on and post PR.
Sorry don't know what to label this issue as. I think it's more likely an error my side than something wrong with the package. Any help will be appreciated (I'm new to TensorFlow in general). Also thanks for the amazing package!
I'm trying to use this model: https://tfhub.dev/intel/lite-model/midas/v2_1_small/1/lite/1
It computes depth from an image.
And as far as I can see I'm doing all the necessary steps. I copied the code from your image classification example, and also double checked with the Android example provided in the link above (and as far as I can see I'm doing the same steps).
I'm using the tflite flutter helper package.
I'm getting a failed precondition
in Quiver at the following point (when I call interpreter.run):
checkState(tfLiteTensorCopyFromBuffer(_tensor, ptr.cast(), bytes.length) ==
TfLiteStatus.ok);
Stacktrace:
flutter: #0 checkState
package:quiver/check.dart:73
am15h/tflite_flutter_plugin#1 Tensor.setTo
package:tflite_flutter/src/tensor.dart:150
am15h/tflite_flutter_plugin#2 Interpreter.runForMultipleInputs
package:tflite_flutter/src/interpreter.dart:194
am15h/tflite_flutter_plugin#3 Interpreter.run
package:tflite_flutter/src/interpreter.dart:165
am15h/tflite_flutter_plugin#4 Classifier.predict
package:tensorflow_poc/classifier.dart:113
am15h/tflite_flutter_plugin#5 _MyHomePageState._predict
package:tensorflow_poc/main.dart:69
am15h/tflite_flutter_plugin#6 _MyHomePageState.getImage.<anonymous closure>
package:tensorflow_poc/main.dart:63
am15h/tflite_flutter_plugin#7 State.setState
package:flutter/…/widgets/framework.dart:1267
am15h/tflite_flutter_plugin#8 _MyHomePageState.getImage
package:tensorflow_poc/main.dart:57
<asynchronous suspension>
Something that also has me confused is that interpreter.getInputTensor(0).type
returns TfLiteType.float32
, but I expected this to be uint8
from the model description.
Below is my classifier class (I'm using this classifier in the Image Classification example from this package):
import 'dart:math';
import 'package:image/image.dart';
import 'package:collection/collection.dart';
import 'package:logger/logger.dart';
import 'package:tflite_flutter/tflite_flutter.dart';
import 'package:tflite_flutter_helper/tflite_flutter_helper.dart';
abstract class Classifier {
Interpreter interpreter;
InterpreterOptions _interpreterOptions;
var logger = Logger();
List<int> _inputShape;
List<int> _outputShape;
TensorImage _inputImage;
TensorBuffer _outputBuffer;
TfLiteType _outputType;
String get modelName;
NormalizeOp get preProcessNormalizeOp;
Classifier({int numThreads}) {
_interpreterOptions = InterpreterOptions();
if (numThreads != null) {
_interpreterOptions.threads = numThreads;
}
loadModel();
}
Future<void> loadModel() async {
try {
interpreter =
await Interpreter.fromAsset(modelName, options: _interpreterOptions);
print('Interpreter Created Successfully');
_inputShape = interpreter.getInputTensor(0).shape; // {1, 256, 256, 3}
_outputShape = interpreter.getOutputTensor(0).shape; // {1, 256, 256}
_outputType = interpreter.getOutputTensor(0).type; // TfLiteType.float32
print('_inputShape[0]: ${_inputShape[0]}');
print('_inputShape[1]: ${_inputShape[1]}');
print('_inputShape[2]: ${_inputShape[2]}');
print('_inputShape[3]: ${_inputShape[3]}');
print('_outputShape[0]: ${_outputShape[0]}');
print('_outputShape[1]: ${_outputShape[1]}');
print('_outputShape[2]: ${_outputShape[2]}');
print('_outputType: $_outputType');
print(
'_intputType: ${interpreter.getInputTensor(0).type}'); // TfLiteType.float32, but expected this to be uint8
_outputBuffer = TensorBuffer.createFixedSize(_outputShape, _outputType);
_probabilityProcessor =
TensorProcessorBuilder().add(postProcessNormalizeOp).build();
} catch (e) {
print('Unable to create interpreter, Caught Exception: ${e.toString()}');
}
}
Future<void> loadLabels() async {
labels = await FileUtil.loadLabels(_labelsFileName);
if (labels.length == _labelsLength) {
print('Labels loaded successfully');
} else {
print('Unable to load labels');
}
}
TensorImage _preProcess() {
int cropSize = min(_inputImage.height, _inputImage.width);
return ImageProcessorBuilder()
.add(ResizeWithCropOrPadOp(cropSize, cropSize))
.add(ResizeOp(
_inputShape[1], _inputShape[2], ResizeMethod.NEAREST_NEIGHBOUR))
.add(preProcessNormalizeOp)
.build()
.process(_inputImage);
}
void predict(Image image) {
try {
if (interpreter == null) {
throw StateError('Cannot run inference, Intrepreter is null');
}
final pres = DateTime.now().millisecondsSinceEpoch;
_inputImage = TensorImage.fromImage(image);
print('input image data type: ${_inputImage.dataType}');
_inputImage = _preProcess();
print('input image width: ${_inputImage.width}');
print('input image height: ${_inputImage.height}');
print('input image data type: ${_inputImage.dataType}');
final pre = DateTime.now().millisecondsSinceEpoch - pres;
print('Time to load image: $pre ms');
print('input buffer: ${_inputImage.buffer}');
print('output buffer: ${_outputBuffer.getBuffer()}');
final runs = DateTime.now().millisecondsSinceEpoch;
interpreter.run(_inputImage.buffer, _outputBuffer.buffer); // THROWS
final run = DateTime.now().millisecondsSinceEpoch - runs;
print('Time to run inference: $run ms');
print(_outputBuffer.getDoubleList());
} catch (e, st) {
logger.e('error', e, st);
print(st);
}
}
void close() {
if (interpreter != null) {
interpreter.close();
}
}
}
And implementation class:
import 'package:tensorflow_poc/classifier.dart';
import 'package:tflite_flutter_helper/tflite_flutter_helper.dart';
class ClassifierQuant extends Classifier {
ClassifierQuant({int numThreads: 1}) : super(numThreads: numThreads);
@override
String get modelName => 'lite-model_midas_v2_1_small_1_lite_1.tflite';
@override
NormalizeOp get preProcessNormalizeOp => NormalizeOp(0, 1);
}
Are there any plans for a null safety update?
Error Code:
https://flutter.dev/go/android-project-migration
to migrate your project. You may also pass the --ignore-deprecation
flag to
ignore this check and continue with the deprecated v1 embedding. However,
the v1 Android embedding will be removed in future versions of Flutter.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The detected reason was:
C:\Downloads\Code\Flutter\Projects\object_detection_flutter-master\android\app\src\main\AndroidManifest.xml
uses android:name="io.flutter.app.FlutterApplication"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Build failed due to use of deprecated Android v1 embedding.
Hi,
I would like to know how to run detection on an image fetched from the gallery.
PS: Sorry I am new to flutter
I am currently working on an object detection app, but our models are yolo v3 and yolo v4, and so far I haven't found anything that could help me, does this example cover these models?
Hi @am15h Thanks for your job!
I was able to test your app and find out some error - Uninitialized CameraController. Can you explain to me what is wrong?
Thanks!
Error: The method 'File.create' has fewer named arguments than those of overridden method 'File.create'.
I have seen that it wrote "If you need to test a specific image, you can get a file path where you can put the image. Look at getExternalStorageDirectory() from path_provider package;".
I'm new in flutter, so it quite difficult for me to know how to revise it. Does anyone know it? Or where is the part that I need to revise?
I will be very grateful for your help.
Access denied finding property "vendor.camera.aux.packagelist"
E/CameraManagerGlobal(12313): Camera 4 is not available. Ignore physical camera status change
W/libc (12313): Access denied finding property "vendor.camera.aux.packagelist"
D/OplusCamera2StatisticsManager(12313): addInfo, eventMap: {halLevel=3, cameraId=0, pkgName=com.example.object_detection, connentTime=1669192439944, apLevel=2}
if you getting this error Flutter Build Error: Process 'command 'E:\Flutter Apps\flutter\bin\flutter.bat'' finished with non-zero exit value 1
then do this :-
I had the same problem after this command flutter upgrade and upgrading from V 1.22 to V 1.27.
Exactly what I did, I went to pubspec.yaml then pub-get & pub-upgrde I found there's many outdated packages then I tried pub-outdated and the AS failed to upgrade it, the it's suggests to me to run this command flutter pub upgrade --major-versions and I saw that it's successfully downloaded and installed outdated packages, Then I do Invalided Caches & restarted AS because I found it's cached about 5GB on C partition, and finally I run the app normally again without any problems.
after this run flutter run or flutter run --no-sound-null-safety
Hi,
Are you guys planning to update this example for null safety?
I gonna to do a project with yolov4-tiny, I just put my file on but it's not work.
Is there any thing i need to modify?
And this is the first problem as I put my file in the project. Is there any way to solve it?
RangeError (RangeError (index): Invalid value: Not in inclusive range 0..1: 2)
Thanks a lot for help!!
I am currently running a tflite Mediapipe model which outputs a 3D bounding box. So I would like to know is there a way to drawing the 3D bounding box in my Flutter App as we are able to draw the 2D bounding box.
This is the current OutputTensor am receiving from my tflite model and I want use to draw the 3D bounding box
flutter: [120.87956237792969, 115.73860168457031, 138.97604370117188, 187.78915405273438, 137.4835205078125, 84.2886734008789, 151.32508850097656, 165.74168395996094, 146.28330993652344, 51.38185501098633, 95.4119873046875, 181.07603454589844, 97.72759246826172, 77.48689270019531, 100.90084838867188, 155.7063751220703, 101.90467071533203, 40.651939392089844]
do you have this project in null safety
Actually i dont know what's happening, the variable index, in line 45 of image_utils.dart, increase and stop inference.
Flutter Version: 2.5.1
Pixel 5 android-x86 emulator
Ran this project successfully and updated to null safety here:
To add the TensorFlowLiteC.framework
successfully and avoid the compile error, download the .zip file, unpack it. Then move this folder (TensorFlowLiteC.framework) into your pub.dev cache folder: ~/pub-cache/hosted/pub.dev/tflite_flutter-0.9.0/ios/
(macOS).
Run flutter clean
&& flutter pub get
,
then pod install
in your ios folder.
This should work 😎
Just FYI, I only ran the project for iOS, so if you're wanting to add Android just flutter create . --platforms=android
inside the root of the project folder.
The syntax of info.plist is incorrect and the build fails.
I changed some image converting places and tryed to run on ios. On android everything works fine, and on ios the line _sendPort = await _receivePort.first;
never ends. It stops on that await place. Can you please help me with it?
Is there a way to record the camera video in parallel with detections running ? basically i would like to use image stream with recoding video.
Hi, this is not an app issue. But maybe anyone can provide me with some ideas in how to achieve my goal.
I'm using this project as a base for another project I've been working for a couple of months. But I'm still struggling with the Isolate handling.
The basic idea is to detect and object, then take a "screenshot" and then this image will be compared with predefined set of images.
For example: The model detect a "ball" the app take a screenshot and then using a comparison algorithm it will return the type of ball (baseball, golf, football). Once the comparison process is completed it will navigate to a "result screen" where the app should display the type of ball found.
I'm facing two problems here.
I modified the recognition.dart class and I added a new attribute
// Cropped image is where the object detected is located (like a screenshot)
Image cropedImage;
Then on my home_view.dart, on the resultCallback function
void resultsCallback(List<Recognition> results) {
setState(() {
this.results = results;
});
if (results.isNotEmpty) {
comparisonAlgorithm(results);
});
}
comparisonAlgorithm(List<Recognition> results) async {
setState(() {
// I want to use this variable to display a loading image or something like that...
_ComparisonStatus = true;
_imageFoundStatus = false;
});
// Comparison is a custom class where I will store the result of the algorithm comparison.
Comparison comparison;
Map ComparisonResult = {};
// for (var x = 0; x < results.length; x++) {
comparison = Comparison(0, results[0].cropedImage);
// Here the app should await and do not make any object detection until the process has been completed.
ComparisonResult = await comparison.algorithmGeneration;
// }
// One or more images has been found
if (ssimComparisonResult != null) {
setState(() {
// comparison process has been completed, so we don't need to display the "loading" anymore
_ComparisonStatus = false;
// boolean used to navigate to the success screen
_imageFound = true;
});
}
if (_imageFound) {
_openSuccess();
}
}
// File isolate_utils.dart
void pause() async {
_isolate.pause();
}
static void entryPoint(SendPort sendPort) async {
final port = ReceivePort();
sendPort.send(port.sendPort);
await for (final IsolateData isolateData in port) {
if (isolateData != null) {
Classifier classifier = Classifier(
interpreter:
Interpreter.fromAddress(isolateData.interpreterAddress),
labels: isolateData.labels);
imageLib.Image image =
ImageUtils.convertCameraImage(isolateData.cameraImage);
if (Platform.isAndroid) {
image = imageLib.copyRotate(image, 90);
}
Map<String, dynamic> results = classifier.predict(image);
isolateData.responsePort.send(results);
}
}
}
and on the file
//camera_view.dart
Map<String, dynamic> inferenceResults = await inference(isolateData);
// isolateUtils.pause();
var uiThreadInferenceElapsedTime =
DateTime.now().millisecondsSinceEpoch - uiThreadTimeStart;
// pass results to HomeView
widget.resultsCallback(inferenceResults["recognitions"]);
// pass stats to HomeView
widget.statsCallback((inferenceResults["stats"] as Stats)
..totalElapsedTime = uiThreadInferenceElapsedTime);
// set predicting to false to allow new frames
setState(() {
predicting = false;
isolateUtils.pause();
});
}
}
But I don't know how to resume the Isolate when I click on the button "back" to detect another object, I have to close the app and start the app again in order to make another object detection.
Can anyone please explain how the output tensors are formed? I am currently working on detecting multiple objects on an image ( I am using a yolov5 model). I believe the input tensor will be equal to the shape of the image ( for example, [1, 416, 416, 3]), however, i couldn't really understand how the output tensors should look like. Normally, I should expect the coordinates of each detected bounding box.
Thank you for your excellent work,I wanna build an app to detect traffic sign.
How can I train my custom model and deploy it directly on this app.
Tf Lite expecting float32 but getting unit8 int. How to resolve this issue. How to run the interpreter with float32.
I download the project and process it, but it shows wrong message.
`Launching lib\main.dart on sdk gphone x86 in debug mode...
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/delegates/gpu_delegate.dart:58:10: Error: The getter 'addressOf' isn't defined for the class 'TfLiteGpuDelegateOptionsV2'.
'TfLiteGpuDelegateOptionsV2' is from 'package:tflite_flutter/src/bindings/types.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
.addressOf);
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/delegates/metal_delegate.dart:42:70: Error: The getter 'addressOf' isn't defined for the class 'TFLGpuDelegateOptions'.
'TFLGpuDelegateOptions' is from 'package:tflite_flutter/src/bindings/types.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
TFLGpuDelegateOptions.allocate(allowPrecisionLoss, waitType).addressOf);
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/utf8.dart:63:33: Error: The getter 'addressOf' isn't defined for the class 'Utf8'.
'Utf8' is from 'package:ffi/src/utf8.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/utf8.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
String toString() => fromUtf8(addressOf);
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+1/lib/src/path_provider_windows_real.dart:126:25: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
knownFolderID.addressOf, KF_FLAG_DEFAULT, NULL, pathPtrPtr);
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:1039:7: Error: The getter 'addressOf' isn't defined for the class 'LOGFONT'.
'LOGFONT' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
addressOf.cast().elementAt(28).cast();
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:1084:29: Error: The getter 'addressOf' isn't defined for the class 'ENUMLOGFONTEX'.
'ENUMLOGFONTEX' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
LOGFONT get elfLogFont => addressOf.cast().ref;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:1086:29: Error: The getter 'addressOf' isn't defined for the class 'ENUMLOGFONTEX'.
'ENUMLOGFONTEX' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
String get elfFullName => addressOf
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:1092:26: Error: The getter 'addressOf' isn't defined for the class 'ENUMLOGFONTEX'.
'ENUMLOGFONTEX' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
String get elfStyle => addressOf
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:1098:27: Error: The getter 'addressOf' isn't defined for the class 'ENUMLOGFONTEX'.
'ENUMLOGFONTEX' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
String get elfScript => addressOf
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2660:7: Error: The getter 'addressOf' isn't defined for the class 'OSVERSIONINFO'.
'OSVERSIONINFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
addressOf.cast().elementAt(20).cast().unpackString(128);
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2671:11: Error: The getter 'addressOf' isn't defined for the class 'OSVERSIONINFO'.
'OSVERSIONINFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
..addressOf.cast().elementAt(20).value = 0;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2716:24: Error: The getter 'addressOf' isn't defined for the class 'BLUETOOTH_DEVICE_INFO'.
'BLUETOOTH_DEVICE_INFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
String get szName => addressOf
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2809:7: Error: The getter 'addressOf' isn't defined for the class 'BLUETOOTH_PIN_INFO'.
'BLUETOOTH_PIN_INFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
addressOf.cast().elementAt(BTH_MAX_PIN_SIZE).value;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2812:5: Error: The getter 'addressOf' isn't defined for the class 'BLUETOOTH_PIN_INFO'.
'BLUETOOTH_PIN_INFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
addressOf.cast().elementAt(BTH_MAX_PIN_SIZE).value =
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2817:28: Error: The getter 'addressOf' isn't defined for the class 'BLUETOOTH_PIN_INFO'.
'BLUETOOTH_PIN_INFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
String.fromCharCodes(addressOf.cast().asTypedList(pinLength));
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2825:7: Error: The getter 'addressOf' isn't defined for the class 'BLUETOOTH_PIN_INFO'.
'BLUETOOTH_PIN_INFO' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
addressOf.cast().elementAt(idx).value = pinData[idx];
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart:38:31: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final iid = GUID.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart:56:33: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final clsid = GUID.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/winrt/winrt_helpers.dart:86:40: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
final riidCalendar = GUID.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IDesktopWallpaper.dart:197:38: Error: The getter 'addressOf' isn't defined for the class 'COMObject'.
'COMObject' is from 'package:win32/src/com/combase.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final ptr = COMObject.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IDesktopWallpaper.dart:200:49: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(CLSID_DesktopWallpaper).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IDesktopWallpaper.dart:203:48: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(IID_IDesktopWallpaper).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IFileOpenDialog.dart:58:38: Error: The getter 'addressOf' isn't defined for the class 'COMObject'.
'COMObject' is from 'package:win32/src/com/combase.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final ptr = COMObject.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IFileOpenDialog.dart:61:47: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(CLSID_FileOpenDialog).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IFileOpenDialog.dart:64:46: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(IID_IFileOpenDialog).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IFileSaveDialog.dart:99:38: Error: The getter 'addressOf' isn't defined for the class 'COMObject'.
'COMObject' is from 'package:win32/src/com/combase.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final ptr = COMObject.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IFileSaveDialog.dart:102:47: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(CLSID_FileSaveDialog).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IFileSaveDialog.dart:105:46: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(IID_IFileSaveDialog).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IKnownFolderManager.dart:164:38: Error: The getter 'addressOf' isn't defined for the class 'COMObject'.
'COMObject' is from 'package:win32/src/com/combase.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final ptr = COMObject.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IKnownFolderManager.dart:167:51: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(CLSID_KnownFolderManager).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IKnownFolderManager.dart:170:50: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(IID_IKnownFolderManager).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/INetworkListManager.dart:128:38: Error: The getter 'addressOf' isn't defined for the class 'COMObject'.
'COMObject' is from 'package:win32/src/com/combase.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final ptr = COMObject.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/INetworkListManager.dart:131:51: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(CLSID_NetworkListManager).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/INetworkListManager.dart:134:50: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
GUID.fromString(IID_INetworkListManager).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IWbemLocator.dart:82:38: Error: The getter 'addressOf' isn't defined for the class 'COMObject'.
'COMObject' is from 'package:win32/src/com/combase.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/com/combase.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final ptr = COMObject.allocate().addressOf;
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IWbemLocator.dart:84:68: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
final hr = CoCreateInstance(GUID.fromString(CLSID_WbemLocator).addressOf,
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/generated/IWbemLocator.dart:85:64: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
'GUID' is from 'package:win32/src/structs.dart' ('/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
nullptr, CLSCTX_ALL, GUID.fromString(IID_IWbemLocator).addressOf, ptr);
^^^^^^^^^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart:6:7: Error: Struct 'TfLiteInterpreter' is empty. Empty structs are undefined behavior.
class TfLiteInterpreter extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart:9:7: Error: Struct 'TfLiteInterpreterOptions' is empty. Empty structs are undefined behavior.
class TfLiteInterpreterOptions extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart:12:7: Error: Struct 'TfLiteModel' is empty. Empty structs are undefined behavior.
class TfLiteModel extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart:15:7: Error: Struct 'TfLiteTensor' is empty. Empty structs are undefined behavior.
class TfLiteTensor extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/tflite_flutter-0.5.0/lib/src/bindings/types.dart:18:7: Error: Struct 'TfLiteDelegate' is empty. Empty structs are undefined behavior.
class TfLiteDelegate extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/utf8.dart:23:7: Error: Struct 'Utf8' is empty. Empty structs are undefined behavior.
class Utf8 extends Struct {
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/utf16.dart:16:7: Error: Struct 'Utf16' is empty. Empty structs are undefined behavior.
class Utf16 extends Struct {
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:1083:7: Error: Struct 'ENUMLOGFONTEX' is empty. Empty structs are undefined behavior.
class ENUMLOGFONTEX extends Struct {
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2807:7: Error: Struct 'BLUETOOTH_PIN_INFO' is empty. Empty structs are undefined behavior.
class BLUETOOTH_PIN_INFO extends Struct {
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2932:7: Error: Struct 'EXCEPINFO' is empty. Empty structs are undefined behavior.
class EXCEPINFO extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2938:7: Error: Struct 'PROPERTYKEY' is empty. Empty structs are undefined behavior.
class PROPERTYKEY extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2945:7: Error: Struct 'PROPVARIANT' is empty. Empty structs are undefined behavior.
class PROPVARIANT extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2950:7: Error: Struct 'SAFEARRAY' is empty. Empty structs are undefined behavior.
class SAFEARRAY extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2957:7: Error: Struct 'CLSID' is empty. Empty structs are undefined behavior.
class CLSID extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2964:7: Error: Struct 'STATSTG' is empty. Empty structs are undefined behavior.
class STATSTG extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-1.7.3/lib/src/structs.dart:2971:7: Error: Struct 'NLM_SIMULATED_PROFILE_INFO' is empty. Empty structs are undefined behavior.
class NLM_SIMULATED_PROFILE_INFO extends Struct {}
^
/C:/Users/USER/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/allocation.dart:47:33: Error: Expected type 'T' to be a valid and instantiated subtype of 'NativeType'.
final int totalSize = count * sizeOf();
^
FAILURE: Build failed with an exception.
Where:
Script 'D:\winnie\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1035
What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
Process 'command 'D:\winnie\flutter\bin\flutter.bat'' finished with non-zero exit value 1
BUILD FAILED in 3m 9s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)
`
I had tried the way in here and here. But it doesn't work, is there any suggestion for me to solve the problem?
Thanks a lot for help!!
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.