Android Studio中app出现红叉的解决方案

如果你在网上搜索了一大圈之后发现还是没有解决你的问题,或许这篇文章能帮到你,同事的开发环境中遇到了,处理了一下午,期间包括删除工具,重装sdk等等,就差重装系统了。折腾了一下午最后还是发现Run按钮app的module依然显示红叉,特别头疼也感到很疑惑,后来仔细研究还是发现了问题并找到了对应的解决方案,最终是因为集成了kotlin环境而导致app下的iml文件中jdkName和jdkType发生了改变找不到Android SDK引起的。

出现上面截图中的红叉后进行各种sync、make还有clean都没出现任何好转,这里点击app右边向下的小箭头出现Edit Configurations...进入如下界面,提示选择 Android SDK,其实只要之前构建是好的,SDK就没有问题,出现问题主要原因是因为没有找到对应的SDK,这里就是问题的根源所在了。

这里我们需要去找一个文件:app.iml,这个文件是module在构建过程中记录的各种依赖库和构建信息,一般多人协同开发的情况下,这类文件是不需要上传到版本控制中的,构建过程产生的配置信息在项目从版本控制软件中拉取下来后构建时自然会自动生成,找到这个iml文件后,我们按一下Ctrl+F,然后搜索下jdkName,如果你此处的依赖不是Android SDK相关,那很可能就是这里的问题了,正常是这样的:

如果有其他依赖库library,也请找到对应的iml文件查看jdkName=后面是否也存在问题。上面是出现了该问题的解决方案,下面来说一说导致这个问题的原因:

①可能是同事上传了这个iml文件,你拉取之后sync发现找不到对应的Android SDK版本,一般会提示下载SDK或者按照上面的方法修改下就可以。注:建议不要将该文件上传到版本控制软件中,还有其他文件也不需要上传(.gradle、.idea、build、*.iml、gradle.properties、local.properties)等等。

②引用了其他插件所导致,如 kotlin和java混合开发时,将下图中圈中的改为上面一行就可以了,对了这里需要说明一下就是在windows环境下用哪一行都没问题,但是在mac环境下构建完后,iml文件中的jdkName会变成Kotlin SDK,导致项目的app出现红叉找不到Android SDK,写本文的目的也是因为出现了该情况所以才记录下来,希望恰好能帮到你。

③其他原因导致。

========分隔符========

给大家推荐个活跃的开发者社区:掘金是面向程序员的的技术社区,从大厂技术分享到安卓开发最佳实践,扫二维码下载掘金APP,来掘金你不会错过任何一个技术干货。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180718B0YJ6I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励