Gradle无法解析Tuya Android SDK 6.11.0依赖 - 仓库配置异常?
我完全懂你现在的 frustration——在Expo React Native项目里折腾Tuya SDK的Gradle依赖,明明按文档加了仓库,结果还是报找不到依赖的错误,太闹心了。咱们一步步拆解问题,搞定它!
问题核心分析
从错误日志能看到,Gradle确实已经尝试去Tuya的Maven仓库找thingsmart:6.11.0了,但没找到。可能的原因不外乎这几个:
- 你要的
6.11.0版本在Tuya仓库里根本不存在(比如官方移除了旧版本,或者你版本号写错了) - Gradle的仓库配置位置不对(Expo/React Native的Gradle结构和纯Android项目有差异)
- Gradle缓存搞鬼,存了旧的仓库信息
- 网络/权限问题导致Gradle连不上Tuya的仓库
一步步解决方案
1. 先确认Tuya SDK版本的可用性
首先,先排查版本号的问题:
- 去Tuya官方开发者文档查当前推荐的稳定SDK版本,说不定
6.11.0已经被下架了,换成最新的稳定版试试 - 可以手动访问Tuya仓库的对应路径验证:打开浏览器输入
https://maven-other.tuya.com/repository/maven-releases/com/thingclips/smart/thingsmart/6.11.0/thingsmart-6.11.0.pom,如果打不开,说明这个版本确实不存在,换版本就好
2. 确保仓库配置在正确的Gradle节点
Expo React Native用的是Gradle 7+,它的仓库管理逻辑和旧版不一样,settings.gradle里的dependencyResolutionManagement才是核心配置位,build.gradle里的allprojects.repositories可能会被覆盖。
检查你的settings.gradle,确保dependencyResolutionManagement.repositories里正确添加了Tuya仓库,并且没有拼写错误:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) repositories { google() mavenCentral() maven { url 'https://www.jitpack.io' } // 重点:这个URL必须完全正确,末尾的斜杠不能丢 maven { url 'https://maven-other.tuya.com/repository/maven-releases/' } // 如果用的是快照版本,再加这个 // maven { url 'https://maven-other.tuya.com/repository/maven-snapshots/' } } }
另外,repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)这个配置很重要,它会让Gradle优先使用你项目里声明的仓库,而不是插件自带的,避免Expo的配置覆盖你的仓库设置。
3. 清理Gradle缓存,强制刷新依赖
Gradle有时候会缓存旧的仓库元数据,导致明明仓库里有依赖,它还是找不到。执行以下命令彻底清理缓存并刷新:
# 进入android目录后执行 ./gradlew clean build --refresh-dependencies
如果还是不行,可以手动删除本地Gradle缓存目录(注意这会清空所有项目的Gradle缓存,谨慎操作):
- Mac/Linux:
~/.gradle/caches - Windows:
C:\Users\<你的用户名>\.gradle\caches
4. 检查网络/代理问题
如果上面的步骤都试了还是不行,得排查网络:
- 确保你的开发环境能正常访问
https://maven-other.tuya.com,可以用ping或者浏览器测试 - 如果你的网络需要代理,得在
gradle.properties里配置代理信息:systemProp.http.proxyHost=你的代理地址 systemProp.http.proxyPort=端口 systemProp.https.proxyHost=你的代理地址 systemProp.https.proxyPort=端口
5. 兜底:直接用本地AAR包
如果所有仓库配置都搞不定,还有个兜底方案:
- 去Tuya开发者平台下载对应版本的SDK AAR包
- 把AAR包放到
android/app/libs目录下 - 在
app/build.gradle里添加本地依赖:dependencies { implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar']) // 注释掉原来的远程依赖 // implementation 'com.thingclips.smart:thingsmart:6.11.0' }
最后再核对一遍
把上面的步骤走一遍后,再执行./gradlew assembleRelease试试,应该就能正常解析依赖了。如果还是有问题,记得检查你的Tuya App Key和Secret是否配置正确(不过这个和依赖解析无关,但后面初始化会用到)。
要是还有坑,随时回来补充细节,咱们接着调!




