前言
最近在项目中遇到了一个问题,死活拉不下来依赖,耗费了一整天,感觉自己真是菜的抠脚。
没想到今天脑子一清醒,刷刷的问题逐个击破了。
问题描述:
项目成员添加了新的依赖,然后我这边项目拉下来,build了n次,都以失败告终。
unable to resolve dependency for app@......
解决方案:
一、本地依赖jar包。
直接去maven/google/mavenCentral中把这个包下载下来,然后添加到本地jar目录中。
二、使用自己新建本地maven仓库。
1.下载maven。
下载地址为:http://maven.apache.org/download.cgi
2.配置环境变量。
Mac系统的环境变量,加载顺序为:
/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。
这里配置在/etc/profile中。
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home"
export JAVA_HOME
CLASS_PATH="$JAVA_HOME/lib"
PATH=".$PATH:$JAVA_HOME/bin"
export ANDROID_HOME=/Users/fanggao/Library/Android/sdk
export A_NDK_ROOT=/Users/fanggao/Library/Android/sdk/android-ndk-r16b
GRADLE_HOME=/Users/fanggao/gradle/gradleUse
export GRADLE_HOME
export MAVEN_HOME=/Users/fanggao/apache-maven-3.6.3
export PATH=${PATH}:${GRADLE_HOME}/bin:${MAVEN_HOME}/bin:${A_NDK_ROOT}:${ANDROID_HOME}/platform-tools
~
配置好就可以使用了。
3.执行命令,下载maven库对应的文件。
mvn install:install-file -Dfile=jar包的路径 -DgroupId=gruopId中的内容 -DartifactId=actifactId的内容 -Dversion=version的内容 -Dpackaging=jar
例如: mvn install:install-file -Dfile=materialdatetimepicker-4.2.3.aar -DgroupId=com.wdullaer -DartifactId=materialdatetimepicker -Dversion=4.2.3 -Dpackaging=aar
这样,我们的包就下载好了。下载成功会显示成功路径。
/Users/fanggao/.m2/repository/com/wdullaer/materialdatetimepicker/4.2.3/materialdatetimepicker-4.2.3.pom
4.更改本地maven库地址。
找到maven路径中的setting文件,修改为我们刚刚的地址。
open -e apache-maven-3.6.3/conf/settings.xml
5.项目使用。
在项目根目录下的build.gradle文件中使用。
这样我们就可以正常添加依赖并使用了。
三、终极原因,依赖下载不下来,很有可能是网络设置问题。
进入.gradle文件,找到gradle.properties,注释掉代理,成功!
/Users/fanggao/.gradle/gradle.properties
原因是androidStudio的全局设置导致网络走的代理,所以一直访问不了库。
再设置studio的Http Proxy。
参考链接:
1.https://blog.csdn.net/qq_35427437/article/details/79835673