Android studio新建项目res文件夹出错

  • 起因及表现
  • 探索
  • 具体解决方案


起因及表现

这篇主要是写给自己看的文章,想看解决方案的话可以直接跳至最后具体解决方案。

具体出错原因目前我也没有找到,总之在某次删除某个项目文件夹之后,新建的项目就会出错,具体表现为res文件夹下各种配置文件出错,以下是一些出错项目截图

android studio中新建文件夹下创建一个module android studio在res创建文件夹_新建项目


android studio中新建文件夹下创建一个module android studio在res创建文件夹_新建项目_02

探索

最开始怀疑是gradle同步出了问题,甚至尝试买VPN解决这种问题,最后经过缜密的分析(穷)暂时搁置了这个猜想。后来逐渐将重点转移到了项目模板上面,开始找到了活动模板的目录,即Android Studio安装目录下\plugins\android\lib\templates\activities,平常都是使用EmptyActivity,因此从这个文件夹下找起。

android studio中新建文件夹下创建一个module android studio在res创建文件夹_新建项目_03


作为一个小白看到这些文件是有点头痛的,遂去查了一下每个文件的作用,这里不再赘述,感兴趣的话可以去查一下。了解到recipe.xml.ftl跟res文件的创建有关。联系一下上面的错误图片,猜想利用了错误的文件创建res文件夹。查看recipe.xml.ftl中的代码后发现跟res文件夹没什么关系,并且root文件夹也没有包含res文件夹,这里线索又断了。一番思(sou)考(suo)后,我又将目光聚焦在了\plugins\android\lib\templates\gradle-projects\NewAndroidModule这个文件夹,这次的recipe.xml.ftl中显然包含跟res文件夹有关的内容。

android studio中新建文件夹下创建一个module android studio在res创建文件夹_新建项目_04


遂去查看该文件夹下的\root\res文件夹,但也没有发现什么错误。为了测试这个文件夹是否与项目的创建有关,尝试着修改了colors.xml文件,新建项目后,发现colors.xml与我修改后的相同。但为什么其他文件没有错误呢?

试着删除了其他文件,果不其然新建项目失败。但为什么新建项目的res文件夹内容和模板不同呢?走投无路的时候,我把其中一个出错的xml文件用记事本打开,原文剪切又粘贴了回去。

奇迹发生了

再次新建模板,这个文件竟然正确了
遂把每个出错文件如法炮制,至此这个问题就算解决了。根据这个解决方案,我怀疑是IDE利用了某些缓存新建项目,模板文件修改了之后才会再次使用模板文件。
(但我之前清理过缓存啊。。。这到底是哪的缓存)

具体解决方案

将 Android Studio安装文件夹下\plugins\android\lib\templates\gradle-projects\NewAndroidModule\root\res中每个出错的xml文件用记事本打开,原文剪切再粘贴回去。