Studio 有时候真的很奇怪,明明项目几天前都运行好好的,某天等你再次打开运行,就会出现特殊错误。现总结一些错误现象,减少开发人员不必要的时间浪费。
第一个错误:
Error:Failed to resolve: annotationProcessor
如果你百度,你会发现大家说和butterknife 或者是apt等有问题,然后叫你更新google仓库。这种方案我试验过,但是往往都不凑效,请仔细观察你的studio报错提示,如果下面有提示:failed to resolve xxx.xxxx.xxxx ,那就可以定位到是这个库引起的。
解决方案如下:
检查此包是否有成功引入进来,一般就是没有成功引入的原因,想办法引入进来就是。
第二个错误:
Only Jar-type local dependencies are supported.
这个是我在引入本地一个aar的包的时候发现的(studio版本3.3,gralde版本3.3)
我把aar包放入libs包下,然后在dependencies中写入:
compile files('libs/xxx.aar')
结果提示这里只支持jar包。
解决方案如下:
还是将aar放到libs目录下,然后在gralde中加入如下语句:
repositories {
flatDir {
dirs 'libs'
}
compile(name:'xxx', ext:'aar')
第三个错误:
有些公司会搭建本地maven仓库, 存放一些私用的jar包或是aar包,项目中引入的时候,发现找不到这些包。
解决方案如下:
用浏览器访问仓库地址,如果需要验证信息,说明你需要在gralde中添加验证信息,具体操作如下:
maven {
credentials {
username = "aaa"
password = "bbb"
}
url "私有仓库地址"
}
第四个错误:
解决方案如下:
- 确认项目中引入的包都没有问题
- 尝试修改gralde-wrapper.properties中的gradle版本。一般这个问题就是a项目用的是1版本,用studio打开另外一个项目b,b用的gradle版本是2,再去打开a项目,有时候就是会有这个错误,改回原来的1版本就好。
第五个错误:
打开某个很久不用的项目,编译的时候,直接提示:
For input string: "<!"
查看日志,提示也是特别简单明了:
17:29 Gradle sync failed: For input string: "<!"
Consult IDE log for more details (Help | Show Log) (1 s 207 ms)
解决方案如下:
打开gradle.properties文件:
会发现这个文件中有这样的一行奇怪代码:
//\uFFFD\uFFFD\u04AA\uFFFD\u0434\uFFFD\uFFFD\uFFFD=
org.gradle.jvmargs=-Xmx2048m -XX\:MaxPermSize\=1024m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.parallel=true
替换成如下再编译 ok 了
org.gradle.jvmargs=-Xmx1536m
android.enableSeparateAnnotationProcessing=true
android.injected.testOnly=false
持续更新中。。。。。。