当把旧项目的编译sdk版本调整为27时(compileSdkVersion27),gradle出现了一个奇怪的编译错误,如下图所示。
gradle报错信息
clean 和 rebuild 之后,又出现了之下的幺蛾子:
rebuild之后的报错信息
根据提示打开SDK的管理界面,发现该安装的都安装了,折腾无果只能请教度娘的。折腾一阵子,依然无果~无奈只好翻梯子请出了蹲在墙角的谷歌大哥。直接搜索第一行报错信息。Bingo,这次竟然一击命中!搜索结果把我引导进入了著名的StatackOverflow(网址:https://stackoverflow.com/questions/49781097/failed-to-resolve-support-fragment-error-when-add-google-architecture-component),搜到如下信息:
StackOverflow
翻译成中文就是:把工程文件中build.gradle的buildscript和allprojects节点下仓库顺序调整一下,具体就是把google()放在jcenter()的前面,到之后久久无语,自己尝试改了一下,竟!然!真!T!M!能!用!,这都是什么鬼!WTF!目前尚不清楚原因,怀疑是jcenter()的support 仓库移除了support 27 之后的jar包...(暂时没精力去求证.)
修改之后能正常工作的仓库顺序
看来百度对程序员的友好性还是远远不能和谷歌抗争。今天把它搬运过来,希望能帮助猿友们少浪费时间解决这个问题~~~