构建nativescript-google-maps-sdk插件失败,求有效解决方案
解决Nativescript中nativescript-google-maps-sdk构建失败(找不到common.jar)的问题
问题重现
在设备xyz上尝试应用更改时,遇到插件构建失败的错误,核心报错信息如下:
Unable to apply changes on device: xyz. Error is: Failed to build plugin nativescript-google-maps-sdk : Error: Command gradlew.bat failed with exit code 1 Error output: FAILURE: Build failed with an exception. * What went wrong: Could not resolve all files for configuration ':releaseCompileClasspath'. > Could not find common.jar (android.arch.core:common:1.0.0). Searched in the following locations: https://jcenter.bintray.com/android/arch/core/common/1.0.0/common-1.0.0.jar
你已经尝试过添加Google Maven仓库和重装插件,但都没有解决问题,接下来试试这些更针对性的方案:
有效解决方案
1. 调整仓库顺序,让Google Maven优先被检索
问题的核心是jcenter已经停止维护,很多旧的Android依赖包已经被移除,但Gradle默认可能会先去jcenter查找。你需要确保Google Maven仓库在所有仓库配置的最前面:
- 打开项目根目录的
build.gradle(如果是Nativescript较新版本,可能是App_Resources/Android/build.gradle) - 修改
repositories块,确保顺序如下:
repositories { google() // 新版Gradle用这个,旧版可以写成maven { url "https://maven.google.com" } mavenCentral() jcenter() // 保留但放在最后,若不需要可直接移除 }
2. 升级插件到兼容的稳定版本
旧版的nativescript-google-maps-sdk可能依赖的配置还指向jcenter,升级到最新版通常会修复这类依赖问题:
tns plugin remove nativescript-google-maps-sdk tns plugin add nativescript-google-maps-sdk@latest
如果最新版仍有问题,可以查看插件的发布历史,选择一个近期的稳定版本安装。
3. 彻底清理缓存
缓存中的旧依赖残留可能导致Gradle不读取新的仓库配置,执行以下步骤:
- 清理项目构建缓存:
tns clean
- 手动删除本地Gradle缓存目录:
- Windows:
C:\Users\<你的用户名>\.gradle\caches - Mac/Linux:
~/.gradle/caches
或者用Gradle命令清理:
- Windows:
gradlew cleanBuildCache
4. 检查App级别的gradle配置
有些插件会在App_Resources/Android/app.gradle中添加独立的仓库配置,确保这里也包含Google仓库:
repositories { google() mavenCentral() }
为什么之前的方法没奏效?
你之前添加Google仓库可能只是放在了jcenter后面,Gradle优先去jcenter查找,而jcenter已经没有这个依赖包;或者插件版本太旧,内部的依赖配置还没更新到指向Google Maven,导致即使添加了仓库也无法生效。
内容的提问来源于stack exchange,提问作者Nishu Dhiman
相关产品推荐
相关产品推荐

