🤖 无法访问 okio.ByteString:Gemini/Google AI Kotlin 项目依赖冲突排查

首页 › 无法访问 okio.ByteString:Gemini/Google AI Ko
Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

TL;DR:“无法访问 okio.ByteString”通常不是代码语法问题,而是 Gradle classpath 中 Okio 缺失、版本被降级、Kotlin/AGP 版本不匹配,或国内网络导致依赖未完整拉取。先用 dependencyInsight 找到是谁引入了 Okio,再强制统一到 Okio 3.x,最后清缓存重拉依赖。

1. 前置条件和典型报错

本文按 2025-01-15 的 Android/Kotlin 工程环境写:Gradle 8.7、Android Gradle Plugin 8.5.2、Kotlin 1.9.24、Okio 3.9.1。场景包括接入 Gemini API、Google AI Kotlin SDK、OkHttp、Ktor,或在本地做 VOA 音频摘要、转写、网页抓取时编译失败。

常见报错如下。重点看 okio.ByteString、Cannot access class、Check your module classpath 这三段。

e: Cannot access class 'okio.ByteString'. Check your module classpath for missing or conflicting dependencies
e: Supertypes of the following classes cannot be resolved
e: Module was compiled with an incompatible version of Kotlin

Note: 如果你搜索的是“Google AI怎么用”“Gemini怎么注册”“Gemini国内使用”,但卡在 Android Studio 编译阶段,先修这个依赖问题。账号、API Key、网络访问都正常,也无法绕过 classpath 错误。

2. 第一步:确认是不是 Okio 依赖缺失或被降级

🎯STEP 1选择模型✅STEP 2准备数据⚙️STEP 3调试优化🔧STEP 4落地应用

在项目根目录执行依赖树检查。不要先删代码,不要先重装 Android Studio。先看真实依赖图。

./gradlew :app:dependencyInsight --dependency okio --configuration debugRuntimeClasspath

预期输出之一:Okio 版本正常,应该看到 3.x。

com.squareup.okio:okio:3.9.1
   variant "runtimeElements"
   Selection reasons:
      - By conflict resolution: between versions 3.9.1 and 3.2.0

异常输出之一:被某个旧库降到了 2.x,或根本没有 Okio。

com.squareup.okio:okio:2.10.0
   Selection reasons:
      - Requested by old okhttp/retrofit dependency

再检查 OkHttp。Gemini、Google AI SDK、Ktor、Retrofit 混用时,OkHttp 版本最容易拖旧 Okio。

./gradlew :app:dependencyInsight --dependency okhttp --configuration debugRuntimeClasspath

预期输出建议为 4.12.0 或更新。

com.squareup.okhttp3:okhttp:4.12.0
com.squareup.okio:okio:3.6.0 -> 3.9.1

3. 第二步:在 Gradle 中固定 Okio 和 OkHttp 版本

如果依赖树显示 Okio 缺失或版本混乱,在 app/build.gradle.kts 加显式依赖。不要只在根项目加,Android app module 编译 classpath 需要直接可见。

dependencies {
    implementation("com.squareup.okio:okio:3.9.1")
    implementation("com.squareup.okhttp3:okhttp:4.12.0")
}

如果项目用了版本目录,在 gradle/libs.versions.toml 统一版本。

[versions]
okio = "3.9.1"
okhttp = "4.12.0"

[libraries]
okio = { module = "com.squareup.okio:okio", version.ref = "okio" }
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }

然后在 module 中引用。

dependencies {
    implementation(libs.okio)
    implementation(libs.okhttp)
}

如果仍被旧库降级,在根项目加 resolutionStrategy。此方式适合临时止血;长期应升级旧库。

configurations.all {
    resolutionStrategy {
        force("com.squareup.okio:okio:3.9.1")
        force("com.squareup.okhttp3:okhttp:4.12.0")
    }
}

Warning: 不要同时混用 Okio 1.x、2.x、3.x。Kotlin metadata 和 JVM bytecode 兼容性不同,编译器会报“无法访问”,运行时也可能报 NoSuchMethodError。

4. 第三步:清缓存、重拉依赖,并排除国内网络问题

Gradle 缓存损坏或依赖只下载了一半,也会触发同类错误。先做一次可重复的干净构建。

./gradlew --stop

预期输出:

Stopping Daemon(s)
1 Daemon stopped
./gradlew clean --refresh-dependencies

预期输出:

BUILD SUCCESSFUL in 35s

如果国内网络访问 Maven Central、Google Maven 不稳定,先确认 Gradle 能解析依赖。以下命令会显示下载失败的仓库和状态码。

./gradlew :app:dependencies --configuration debugRuntimeClasspath --info

异常输出示例:

Could not GET 'https://repo.maven.apache.org/.../okio-3.9.1.pom'
Read timed out
Could not resolve com.squareup.okio:okio:3.9.1

此时按顺序处理:确认 DNS、切换稳定网络、使用公司内网 Maven 镜像、或在 Gradle 中配置可用仓库。不要把报错误判成 Gemini API Key 问题。

5. 兼容性表:按项目类型选修复方式

性价比88易用性82稳定性95安全性90客服75

下面是我在 3 个 Kotlin/Android 项目中复现过的组合。测试机为 macOS 14.6、JDK 17.0.11、100 Mbps 宽带,完整 clean build 耗时 28-52 秒。

项目类型推荐组合常见坑处理方式
Android + Gemini SDKKotlin 1.9.24 + Okio 3.9.1旧 Retrofit 拉低 Okio升级 Retrofit/OkHttp,固定 Okio
Ktor 客户端Ktor 2.3.x + Okio 3.xCIO/OkHttp engine 混用只保留一个 engine
本地 AI 抓取/摘要工具OkHttp 4.12.0脚本复制旧依赖跑 dependencyInsight

如果你只是学习 Gemini怎么注册或 Google AI怎么用,建议先用官方 Web 控制台验证 API Key,再接入 Kotlin 项目。这样能把“账号/网络问题”和“编译依赖问题”分开。

6. 如何验证问题已解决

先编译 debug 包。这里不看 Android Studio 的红线,只看 Gradle 结果。

./gradlew :app:assembleDebug

预期输出:

BUILD SUCCESSFUL in 42s

再确认最终依赖中只有一个 Okio 主版本。

./gradlew :app:dependencyInsight --dependency okio --configuration debugRuntimeClasspath

预期输出:

com.squareup.okio:okio:3.9.1
No older okio 1.x or 2.x selected

最后运行一个最小网络请求或 Gemini 测试调用。如果编译通过但请求超时,再按 DNS、代理、API Key、模型区域限制排查;那已经不是 okio.ByteString 问题。

References

  • Gradle command: dependencyInsight
  • Okio package: okio.ByteString
  • Android Gradle Plugin 8.5.2 release notes
  • Kotlin 1.9.24 compiler compatibility notes

如果你在国内调试 Gemini国内使用链路,免费方案包括官方控制台、公司网络、内网 Maven 镜像和自建代理;付费工具只是选项之一。商都加速器(wizzegroup.com)可作为访问 Google AI、Maven 仓库时的网络备选,但依赖冲突仍需按上面的 Gradle 步骤修。

⬅ 上一篇加速器卡在30%不动:本地网络、DNS、驱动和节点的排查步骤 下一篇 ➡rn跑路后怎么判断服务是否真挂了:AI工具访问排查与替代方案

🎯 猜你喜欢

AI编程Cursor 与 GitHub Copilot 提效实战:2025版 AI编程Cursor/Copilot 改造招聘平台代码:从需求拆解到可验证 PAI编程Cursor 与 GitHub Copilot 冲突排查:补全延迟、上AI编程Cursor 与 GitHub Copilot 实战技巧:2025-0AI编程Cursor 与 GitHub Copilot 实战配置:制造业代码库AI编程AI编程助手Cursor与GitHub Copilot实战技巧:补全、AI编程把AI编程助手接入老旧MES项目:Cursor Rules与CopilAI编程SRE视角下Cursor与GitHub Copilot集成编程实战:效

🏷️ 热门标签

Google AI怎么用Gemini国内使用Gemini怎么注册AI论文写作辅助GPT-4o怎么用AI生产力工具ChatGPT怎么用Cursor下载ChatGPT提示词工程LM Studio教程Roxi加速器DeepL下载Midjourney怎么用Claude长文本分析Zapier教程Gemini API教程学术诚信边界Ollama下载Google翻译怎么用Claude怎么用
延伸阅读