2020年7月18日 关于拉不了依赖包的情况。终于是找到一个相对合适的解决方案了。
首先,我们下载的依赖包,都会放在
C:\Users\你的用户名\.gradle\caches\modules-2\files-2.1 文件夹下.
比如我的:
在这下面有很多依赖包。
举个栗子。假设as报错,提示无法下载aria-core-3.6.6.aar。但是有提供的连接,点开可以从浏览器正常下载。好的。那我们就从浏览器上下载下来放到桌面。这时候打开上面的目录。到files-2.1目录下。这时候需要一点小聪明了。在该目录下搜索aria
看搜索结果,比如aria-annotations这个文件夹,用脚指头想都知道肯定和aria-core有关联。找到aria-annotations的目录,并返回到他的上一级
如上图所示。注意这里你的文件夹可能没有aria-core这个文件夹哈。找到上图这个目录会后,如果没有aria-core文件夹。就自己手动创建一个。你缺的什么jar包,就用你下载下来的jar包名字命名这个文件夹。应该懂吧?模仿其他文件夹命名。
同理进去之后创建一个3.6.6的文件夹。为什么创建这个文件夹呢?首先要明白。as没法下载aria-core-3.6.6.aar。这个3.6.6就是下载下来jar包的版本。参考aria-annotations文件夹,他的下一级就是版本号。所以这里我们也创建一个版本号的文件夹。之后打开我们创建的3.6.6文件夹。
我们还需要创建一个文件夹
这个文件夹的命名怎么做呢?
还记得我们在桌面下载下来的jar包吧。打开cmd。
输入:
certutil -hashfile jar包路径 SHA1
可以得到一个sha1值
复制这个值。
回到我们刚刚的文件夹目录,就是3.6.6文件夹下,我们在创建一个文件夹,就拿复制的值命名。
然后把下载下来的jar包丢进去 。就完事了。
as点击sync now 或者重启as一下。就能运行起来了!!
下面的内容属于心路历程。仅供参考.上面的方法是一定可以的。之前弄kotlin也是用的这个方法。as无法下载kotlin相关依赖包。我也是手动放到目录里面去的。最大的问题就是需要一个一个的下载包。耗时。
2020年3月8日,我感觉这个问题我都可以连载了。。。。哈哈哈。在出现问题后,用旧方法各种尝试无果,介绍一下新方法,这算是这次最简单的处理方法了。之前我卸载重装,都是去的官网,这次我们换成中文社区那边下载:http://www.android-studio.org/ 我当前下载版本:(换成中文社区那边是因为官网3.6版本不是很喜欢。。。)
从中文社区那边下载的是可以跑起来的,原先是新建项目业报无法找到证书有效路径,xxxx包没下载问题。
3月9日。就是第二天,又不行了、。、。
经过一番折腾可以了。我也不知道哪一步是关键的·。记录下处理的内容:
1、在C:\Users\Administrator\.gradle路径下,创建init.gradle
allprojects{
repositories {
def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
all { ArtifactRepository repo ->
def url = repo.url.toString()
if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
remove repo
}
}
maven {
url REPOSITORY_URL
}
}
}
2、 在C:\Users\你的用户名\.gradle下
图中最后那个文件打开,底部有加了:
systemProp.http.proxyHost=mirrors.neusoft.edu.cn
systemProp.http.proxyPort=80
3、去jcenter官网,下了个证书,然后加到as中,当然阿里云的那个也加了证书
4、修改gradle版本
希望对你有帮助哈O(∩_∩)O哈哈~
-------------------------------------------下面都是历史记录
2019-12-15,android studio版本3.5.3 。先说明一下,本篇文章最早是在10月份记录的,当时遇到的问题按照原来的方式确实解决了,但是后面又出现了这个问题,且一直无法解决,现在是最新的解决方案!!!!!而且!!!!我百度,google,stack overflow各种途径都看了,目前还没看到有又相同的方案。下面直接进入主题:
很多人说证书不被信任,手动导入证书就可以,确实是这样!!!但是,只看到了他们说导入证书jcenter那个网站的证书,我还增加了一份证书:https://services.gradle.org/就是这个网站的证书了!导入证书的方式可以看下本篇17号记录的内容。
新建项目后发现还是不行,请把版本等信息试试和我一样:
注意:添加完新的证书后,我出现了单元测试包无法下载问题,更新下junit的版本就可以了.
【下面是从最早10月份开始的记录,重点看17号的记录,如何导入证书】
记录一次巨坑,花了一下午。坑死了啊!!!
Android studio打包的时候出现如下问题:
当时关注的重点是这里:
作为一名喜欢懒得搬砖工,自然喜欢直接百度了,然而很明显没有解决问题。
看这句问题翻译是说没找到有效证书路径啊。顺着这个思路,找到了下面这两篇文章:
http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html
https://www.java-samples.com/showtutorial.php?tutorialid=210
这两篇就是说怎么添加一个证书的,添加到哪里?
于是就跟着上面大佬的指示开始做了,最后发现证书格式一直提示不对,提示说所输入的不是 X.509 证书!!我去,当时在网页获取证书的时候,我都清清楚楚看了格式的,支持X.509格式!!!没办法,在百度找找看吧,
keytool 错误: java.lang.Exception: 所输入的不是 X.509 证书
在上面这篇文章中,跟着把格式做了转换,最终折腾成功了!!也成功导入了证书,然而还是一样的报错。
看来不是证书问题了,回头继续看看错误的代码提示,
看着意思是那个xxx-26.4.1.jar包没拿到吗,点击链接直接就让我下载。那就乖乖下载了,我想既然could not get这个包,那我手动重新引入没问题吧?复制到lib包,引入到app的build.gradle中,再试一次,还是不行!!!
再次百度瞅瞅问题,这次百度的方向就是xxx-26.4.1.jar包找不到。
跟着百度的做法,依然没解决。
其中什么google()必须在jceter()上面之类的,但是我原本就是在上面的,无效,
还有意思是说把下面删除了重新build?
还好我新创建了项目,这样依然无效。。
这期间无助的我尝试过重启,全局代理爬墙,设置无代理,卸载AS安装低版本3.2(这里是个坑!),降低gradle版本,重新设置一个签名,设置阿里镜像版本等等都无效果。
后面总结发现,自己新建的项目也会出现这个问题,并且项目都是可以连接真机跑起来的,打包成debug版本也是可以,唯独打包成release版本有问题,于是就朝着这方面百度。
最后看到了这里:
升级完Android Studio3.2后,打包release出现的错误 升级完Android Studio2.3后,打包release出现的错误
文章里面提到:
试着添加之后成功了!!!!O(∩_∩)O哈哈~不容易!
原来3.2以后都来这茬了!
关于在build.gradle中配置lintOptions选项:
android {
lintOptions {
// true--关闭lint报告的分析进度
quiet true
// true--错误发生后停止gradle构建
abortOnError false
// true--只报告error
ignoreWarnings true
// true--忽略有错误的文件的全/绝对路径(默认是true)
//absolutePaths true
// true--检查所有问题点,包含其他默认关闭项
checkAllWarnings true
// true--所有warning当做error
warningsAsErrors true
// 关闭指定问题检查
disable 'TypographyFractions','TypographyQuotes'
// 打开指定问题检查
enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
// 仅检查指定问题
check 'NewApi', 'InlinedApi'
// true--error输出文件不包含源码行号
noLines true
// true--显示错误的所有发生位置,不截取
showAll true
// 回退lint设置(默认规则)
lintConfig file("default-lint.xml")
// true--生成txt格式报告(默认false)
textReport true
// 重定向输出;可以是文件或'stdout'
textOutput 'stdout'
// true--生成XML格式报告
xmlReport false
// 指定xml报告文档(默认lint-results.xml)
xmlOutput file("lint-report.xml")
// true--生成HTML报告(带问题解释,源码位置,等)
htmlReport true
// html报告可选路径(构建器默认是lint-results.html )
htmlOutput file("lint-report.html")
// true--所有正式版构建执行规则生成崩溃的lint检查,如果有崩溃问题将停止构建
checkReleaseBuilds true
// 在发布版本编译时检查(即使不包含lint目标),指定问题的规则生成崩溃
fatal 'NewApi', 'InlineApi'
// 指定问题的规则生成错误
error 'Wakelock', 'TextViewEdits'
// 指定问题的规则生成警告
warning 'ResourceAsColor'
// 忽略指定问题的规则(同关闭检查)
ignore 'TypographyQuotes'
}
}
上面是来自https://blog.csdn.net/berber78/article/details/60766091 扒拉来的~
今天17号。停了几天代码,很快就不熟悉了,今天新建项目,又特么相同的错误!
这次试用证书方式解决了。
第一步打开网站:https://bintray.com/bintray/jcenter,
我是google浏览器,
第二步。点击下图中的证书。
第三步,跟着下图点就对了。
继续~别停。
选择Base63编码的 X.509(.cer)格式的,别选错了。
选个地方保存下,我就先放桌面了。
点击下一步完成。
然后我把它放在了d盘,方便一会写目录而已。
下面管理员权限打开cmd
进入android\android\jre\jre\lib\security 文件夹下,这是你安安装android studio的文件夹里面
然后执行
keytool -import -alias abc -keystore cacerts -file D://abc.cer
库密钥口令输入:changeit
是否信任:Y
证书导入成功
查看证书,密钥仍然是changeit 下面是查看证书
keytool -list -keystore cacerts -alias abc
完成!重启as,完美了~ 开心的飞起!
没错我又回来了!。10月28日,带着公司的源码回家,发现又出现了这个问题。唉,为什么我总是命运坎坷
啥也不说了,直接上我的解决方案吧。希望对你有帮助吧