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

Android对接YouTube Data v3 API调用videos/list接口报EPERM错误求助

问题解决步骤

1. 清理无效依赖&冗余代码

你当前项目引入了桌面端专属的依赖,完全不适用于Android场景,先删除build.gradle中以下两行配置:

// 桌面端Jetty OAuth服务依赖,Android不支持,直接删除
implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
// 无需求的Tasks API依赖,无用直接删除
implementation 'com.google.apis:google-api-services-tasks:v1-rev48-1.23.0' exclude module: 'httpclient'

你当前仅用API Key鉴权,不需要走OAuth2.0流程,所有调用AuthorizationCodeInstalledApp的代码全部删除,你已实现的YoutubeAPI类本身就是API Key的调用逻辑,直接调用该类的start方法即可,不要混用官方快速入门里的OAuth相关冗余代码。

2. 补加网络权限

Android默认禁止应用访问网络,你上报的EPERM (Operation not permitted)错误大概率是缺少网络权限导致,需要在AndroidManifest.xml的manifest标签下(application标签外)添加权限声明:

<uses-permission android:name="android.permission.INTERNET" />

3. 可选:更新依赖版本(推荐)

你当前使用的1.23.0版本API客户端是多年前的旧版本,存在兼容性风险,建议更新到较新的稳定版:

implementation 'com.google.api-client:google-api-client-android:2.2.0' exclude module: 'httpclient'
implementation 'com.google.apis:google-api-services-youtube:v3-rev20220715-2.0.0'
implementation 'com.google.http-client:google-http-client-gson:2.2.0' exclude module: 'httpclient'

依赖更新后同步调整YoutubeAPI类的JSON工厂定义,用GsonFactory替代JacksonFactory更适配Android环境:

import com.google.api.client.json.gson.GsonFactory

// 伴生对象内修改对应配置
private val JSON_FACTORY: JsonFactory = GsonFactory.getDefaultInstance()

4. 调用校验

  • 网络请求已经放在子线程执行符合要求,拿到返回结果后需要切回主线程再更新UI
  • 检查Google Cloud控制台的API Key是否已经开启Youtube Data API v3的访问权限,测试阶段可以暂时去掉应用包名、签名限制,验证功能正常后再开启安全限制。

内容的提问来源于stack exchange,提问作者Max90

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:06:04