Android Studio使用Drive API上传文件遇类型转换错误咨询
错误原因分析
这个错误的核心是类型混淆,具体原因如下:
- 代码中第一行的
File fileMetadata = new File("video.mp4");默认使用的是java.io.File(本地文件操作类),但Google Drive API的driveService.files().create()方法要求传入的是com.google.api.services.drive.model.File(Drive平台的文件元数据模型类),两者属于完全不同的类型,无法直接转换,因此报出类型不兼容错误。 - 你后续调用的
fileMetadata.createNewFile()是java.io.File的方法,进一步说明你误将本地文件对象当成了Drive API所需的元数据对象来使用。 - 额外注意:代码中的
setFields("1DpOLhFd4_ZpeQTvROBAmIyfarn80Yg5S")也存在错误——setFields用于指定接口返回的字段(比如"id,name"),而不是传入文件ID,这会导致后续调用执行失败。
修正后的代码示例
// 创建Drive API专属的文件元数据对象 com.google.api.services.drive.model.File fileMetadata = new com.google.api.services.drive.model.File(); fileMetadata.setName("video.mp4"); // 设置要上传到Drive的文件名 java.io.File filePath = new java.io.File(mVideoFileName); FileContent mediaContent = new FileContent("video/mp4", filePath); Drive driveService = getDriveService(HTTP_TRANSPORT); // 调用create时,需同时传入元数据和文件内容,setFields指定返回的字段 com.google.api.services.drive.model.File file = driveService.files().create(fileMetadata, mediaContent) .setFields("id,name") .execute();
内容的提问来源于stack exchange,提问作者MISAEL DAVID LINARES WARTHON
相关产品推荐
相关产品推荐

