原文: Android resource DarkActionBar not found问题解决 | Stars-One的杂货小窝
几天没改过的代码,突然就无法打开项目了:worried: 报错信息如下
在全网都找不到解决方法的情况下,排查了两天,脾气都快上来了:angry:
自己终于是找到了问题的关键,记录下解决方法,想要看解决方法请直接往下翻
报错信息
error: resource style/Base.Theme.AppCompat.Light.DarkActionBar (aka com.tjsoft.interact:style/Base.Theme.AppCompat.Light.DarkActionBar) not found.
排查过程
首先,便是使用了
clean project
和
rebuild project
的方法,但是没有起到作用
于是,便是尝试清缓存的终极大法(如下图),也是不起作用
没有办法,由于项目之前旧电脑也是有一份,于是尝试旧电脑是否有这个问题,旧电脑编译,丝毫没有问题
定位到可能是开发环境出了问题,看报错信息,猜测是少了
support-v7
主题的配置,于是对两台电脑的依赖包进行比对,确实有所不同:
这是新电脑的library配置
可以看到,旧电脑中具体原因也不明,所以我们手动去设置下liarbry的路径
而在旧电脑的library配置是,后面28.0.0还有
@aar
的标志及res文件夹,而新电脑却没有,可能这就是关键
于是便尝试设置新电脑的library的设置,对应的library依赖,其实编译后是保存在
.idea
的文件夹中,如下图
找到有
support-v7
关键字的文件,我就想着去改这个文件里的内容,改成与旧电脑配置一样看看行不行
在准备修改的时候,发现文件里的路径其实是gradle的缓存路径(下图可能你们看不出来是gradle的路径,是因为我自己修改了gradle保存文件的路径)
大家前面的路径可能类似
C:\\Users\\starsone\\.gradle
这样的路径
抱着侥幸的心理,去该路径看了下,发现有几个文件夹,而当前引用的文件竟然没有包含
value
文件夹,那肯定是自然找不到主题文件
styles.xml
然后果断地尝试修改路径,重新编译,还是失败!:sweat_smile:
似乎到这里就没辙了,我灵机一动,要不然直接把那个文件夹删除了,应该会自动的重新生成,于是删除后发现没有报错了,但是确实报了另外的错…
错误没有截图,无非就是app命名空间似乎找不到对应的属性了
一不做,二不休,把
C:\\Users\\starsone\\.gradle\\caches\\transforms-1\\files-1.1
的这个文件夹清空,重新编译项目,错误顺利解决了:smile:
解决方法
删除gradle里
C:\\Users\\starsone\\.gradle\\caches\\transforms-1\\files-1.1
文件夹的数据,上面的记得找你自己的用户名哦 然后重新sync依赖
PS: 建议给文件夹改个名字即可,把当前出错的项目重新编译就可以解决问题了,再把之前改了名字的文件夹里面的相关数据剪切到新的文件夹,这样就可以不用再打开其他项目的时候重新生成文件,避免等待
自己琢磨了几天也是不容易,也不知道是什么原因导致gradle出问题了,本篇就先这样了!