Dart 未捕获错误:类';int';没有实例getter';长度';
我是否可能错误地创建流和媒体实例? 修改后,我试图将已存储的.docx、.xlsx等文件转换为相应的Google驱动器对应文件 下面的代码Dart 未捕获错误:类';int';没有实例getter';长度';,dart,google-drive-api,google-apis-explorer,Dart,Google Drive Api,Google Apis Explorer,我是否可能错误地创建流和媒体实例? 修改后,我试图将已存储的.docx、.xlsx等文件转换为相应的Google驱动器对应文件 下面的代码 import 'dart:async'; import 'dart:io'; import 'package:http/http.dart' show Client; import 'package:googleapis/common/common.dart' show Media, DownloadOptions; import 'package:goo
import 'dart:async';
import 'dart:io';
import 'package:http/http.dart' show Client;
import 'package:googleapis/common/common.dart' show Media, DownloadOptions;
import 'package:googleapis/drive/v2.dart' as drive;
import 'package:path/path.dart' as path;
Future convertFile(drive.DriveApi api,
Client client,
String objectId) {
var completer = new Completer();
api.files.get(objectId).then((drive.File file) {
var fileName = path.basenameWithoutExtension(file.title);
var parents = file.parents;
client.readBytes(file.downloadUrl).then((bytes) {
var driveFile = new drive.File()
..title = fileName
..mimeType = 'application/vnd.google-apps.document'
..parents = parents;
api.files.insert(driveFile)
.then((driveFile){
var byteList = bytes.toList();
var stream = new Stream.fromIterable(byteList);
var media = new Media(stream, byteList.length);
api.files.update(new drive.File(), driveFile.id, uploadMedia: media)
.then((drive.File f){
stream.close().whenComplete((){
api.files.delete(objectId)
.then((_){
completer.complete(true);
print("Converted ${f.id}");
});
});
});
});
});
});
return completer.future;
}
导致以下错误
Unhandled exception:
Uncaught Error: Class 'int' has no instance getter 'length'.
NoSuchMethodError: method not found: 'length'
Receiver: 80
Arguments: []
Stack Trace:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#1 Base64Encoder.bind.onData (package:googleapis/src/common_internal.dart:325:42)
#2 _RootZone.runUnaryGuarded (dart:async/zone.dart:1093)
#3 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341)
#4 _IterablePendingEvents.handleNext (dart:async/stream_impl.dart:549)
#5 _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:671)
#6 _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:41)
#7 _asyncRunCallback (dart:async/schedule_microtask.dart:48)
#8 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:84)
#9 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:131)
#0 _rootHandleUncaughtError.<anonymous closure> (dart:async/zone.dart:886)
#1 _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:41)
#2 _asyncRunCallback (dart:async/schedule_microtask.dart:48)
#3 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:84)
#4 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:131)
未处理的异常:
未捕获错误:类“int”没有实例获取程序“length”。
NoSuchMethodError:找不到方法:“长度”
收件人:80
论点:[]
堆栈跟踪:
#0 Object.noSuchMethod(省道:核心补片/对象补片。省道:45)
#1 Base64Encoder.bind.onData(包:googleapis/src/common_internal.dart:325:42)
#2_RootZone.runUnaryGuarded(dart:async/zone.dart:1093)
#3 _BufferingStreamSubscription._sendData(dart:async/stream\u impl.dart:341)
#4_IterablePendingEvents.handleNext(dart:async/stream_impl.dart:549)
#5 _PendingEvents.schedule。(dart:async/stream\u impl.dart:671)
#6\u asyncRunCallbackLoop(dart:async/schedule\u microtask.dart:41)
#7\u asyncRunCallback(dart:async/schedule\u microtask.dart:48)
#8 _运行挂起立即回调(dart:隔离补丁/隔离补丁。dart:84)
#9 RawReceivePortImpl.handleMessage(dart:隔离补丁/隔离补丁。dart:131)
#0_roothandleuncaughtror。(dart:async/zone.dart:886)
#1\u asyncRunCallbackLoop(dart:async/schedule\u microtask.dart:41)
#2\u asyncRunCallback(dart:async/schedule\u microtask.dart:48)
#3 _运行挂起立即返回(dart:隔离补丁/隔离补丁。dart:84)
#4 RawReceivePortImpl.handleMessage(dart:隔离补丁/隔离补丁。dart:131)
媒体构造函数需要一个流
,而您的代码正在提供一个流
。要解决此问题,只需更换此行:
var stream = new Stream.fromIterable(byteList);
作者:
媒体构造函数需要一个
流
,而您的代码正在提供一个流
。要解决此问题,只需更换此行:
var stream = new Stream.fromIterable(byteList);
作者:
你能找出,这个错误到底出现在哪里吗?你能找出,这个错误到底出现在哪里吗?它起作用了!谢谢你@luizmineo!呃,有些解决方案是如此简单,以至于我们错过了它们。我为其他人创建了这个要点供将来参考:。它成功了!谢谢你@luizmineo!呃,有些解决方案是如此简单,以至于我们错过了它们。我为其他人创建了此要点,以供将来参考:。