You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:05:15