导入第三方库时遇com.nineoldandroidlibs依赖解析错误求解决
解决Unable to resolve dependency for ':app@release/compileClasspath': could not resolve com.nineoldandroidlibs:library:2.4.0错误
嗨,我明白你在导入EazeGraph饼图库和FancyButtons时遇到的这个头疼的依赖问题了,咱们一步步来搞定它。
问题根源分析
你遇到的错误主要有两个核心原因:
- JCenter仓库已废弃:你当前配置的
jcenter()已经停止维护,很多旧库的镜像已经被移除,包括com.nineoldandroidlibs:library:2.4.0。 - 缺失JitPack仓库:你用到的
eazegraph和fancybuttons都是托管在JitPack上的,但你把对应的仓库配置注释掉了,导致Gradle无法下载这两个库,进而触发了依赖链上的解析错误。
具体解决方案
1. 更新项目级build.gradle的仓库配置
打开项目根目录下的build.gradle,修改repositories部分,替换废弃的JCenter为MavenCentral,并启用JitPack仓库:
buildscript { repositories { google() mavenCentral() // 替换已废弃的jcenter() maven { url 'https://maven.google.com' } } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' } } allprojects { repositories { google() mavenCentral() // 替换已废弃的jcenter() maven { url 'https://maven.google.com' } maven { url "https://jitpack.io" } // 必须启用,因为你的两个第三方库托管在这里 } } task clean(type: Delete) { delete rootProject.buildDir }
2. 升级模块级build.gradle的依赖声明
打开app模块下的build.gradle,把已废弃的compile关键字替换为implementation(这是Gradle的最新规范),确保依赖声明正确:
apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { applicationId "com.example.hamzanaeem.gasapplication" minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation 'com.nineoldandroids:library:2.4.0' implementation 'com.github.blackfizz:eazegraph:1.2.2@aar' implementation 'com.github.medyo:fancybuttons:1.8.4' }
3. 清理并同步项目
完成上述修改后,执行以下操作:
- 点击Android Studio顶部菜单栏的
File -> Sync Project with Gradle Files,等待同步完成 - 然后点击
Build -> Clean Project,清理旧的构建缓存 - 最后执行
Build -> Rebuild Project,重新构建项目
额外建议
如果上述步骤后仍然有问题,可以考虑升级你的Gradle插件版本(当前用的3.0.1比较老旧),不过这需要同步调整compileSdkVersion等配置,如果你暂时不想升级,先按上面的步骤操作应该就能解决问题了。
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

