android 当在github下载一个android项目后
前言
github是一个很好的社区,有时候呢,我们从android下载项目下来无法build,有很多原因,比如说库不见了,或者说自己没有安装过支持的api版本等,会遇到各种问题。
在此总结一下。
问题与解决
包下载不下来
在中国网络上有一个特点,就是有一个叫做红色长城的东西,很多人也叫黑色长城,不同叫法观点不同哈。总之呢,在国内要想去国外溜达上网,就需要爬过去。
如果公司支持国际漫游(跟国内运营签了另外的协议的),当然就不需要了。但是呢,支持国际漫游的公司还有it 部门这个大坑,也不是想访问就能的。所以很多人使用shadowsock,需要一个代理,这样就可以愉快的访问了。
当我们使用了shadowsock这种代理后,依然在根目录下需要下的builde.gradle配置,以便我们获取maven库。
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
有些人就疑问了,为什么使用google()呢?这样不就ok呢?
在这里主要是有些低版本不支持,有下列要求:
Gradle 4.0 and later
Android Studio 3.0 and later
Gradle plugin for android 3.0 and later
所以呢,google()还是不要去趟浑水了。
当然,如果没有代理的,可以使用下面这个地址:
https://dl.google.com/dl/android/maven2/
Could not find method leftShift() for arguments
为什么会出错呢?因为android studio 做的太智能了,一进去就会问你需不需要gradle 这样贴心的话语。
虽然自己还能看懂英文,但是呢,谁都有心情不好和手残的时候,那么难道我还改回去。当然不了,一条路走到黑。
注:这个改动是在gradle5.0改的,那么聪明如你,改回到gradle5.0之前肯定是一种方式了。
直接shilft+ ctrl+f 全局搜索一波,对gradle文件过滤,把<<,全改了。其实呢,说全改,其实我们心里都有数,就几个文件。
task helloword <<{
println 'xxx xxx xx'
}
task helloword {
doLast{
println 'xxx xxx xx'
}
}
去了<< 也许,但是我们要注意的是<< 代表输出的意思。
The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.
在这个问题呢,还是历史版本的问题。这这里我指的历史版本不只是说别人写的项目,还可能比如使用cordova框架啦,你需要一个低级版本的cordova 框架,但是你又需要一个高版本的gradle,这样是你build更快,甚至打包效果更好。
解决方法:
点击提示下的 open file,然后删除即可,对了不要忘记去build.gradle 中声明最低版本,这很重要。
[TAG] Failed to resolve variable '${junit.version}'
这种情况呢,是junit 没下载下来,我们可能有时候呢,去rebuild 一下又成功了。好吧,这就是网络问题了。
后续
忘了,遇到写写。