android - 任何 android Studio 版本 > 3.2.1 显示红色资源但仍可编译
问题描述
我和我的团队被阻止使用 Android Studio 3.2.1。在此之后的任何 android studio 都显示资源错误。资源仍然可以从编辑器中点击/检查,但显示为红色。片段的预览也是KO。
使用:Android Studio 3.2.1 Gradle 插件版本 3.2.1 Gradle 版本 4.6.1
但不能让它工作:Android Studio 3.5 Gradle plugin version 3.5 Gradle version 5.4.1
我看过这个主题:Android Studio 内联编译器显示红色错误,但使用 gradle 编译工作正常
我试图清理/构建+无效缓存并重新启动。
我试图:
rm -rf .idea/caches/
rm -rf .idea/libraries/
rm -rf .gradle/
- 我还通过分析项目和修复所有 XML 错误来检查所有 XML 错误
- AndroidManifest.xml 中的包名是正确的
还有什么可以使这个项目出错?
这是我得到的截图:
我们在上面看到,它是红色的,但仍然可以点击。我的项目也编译了。
解决方案
经过长时间的其他搜索,我解决了它。
解决方案: 我的问题是我有 3 个模块,但其中 2 个具有相同的包名。我重命名了一个,它解决了我的问题。
我是如何解决的:
第一步,我检查了java 文件是否是问题所在:
1) I deleted all my .java files 2) Deleted all activity in androidmanifest.xml 3) create a new empty activity
第二步,我检查了xml 文件是否是问题所在:
1) I deleted all content in my res folder, except the layout of my empty activity
第三步,我检查了gradle 库是否是问题所在:
1) I deleted one by one my dependencies in build.gradle
我发现在依赖项中注入项目的线路是我的问题的原因:
implementation project(':XXX')
1)当我删除它时,它是固定的。
2)因此,我检查它,发现如果我删除XXX项目的androidmanifest.xml,它就解决了我的问题。
3)调试androidmanifest.xml,发现id是问题所在。
似乎 3.2.1 之后的 androidstudio 不允许具有相同包名的多个模块。所以,现在,我所有的模块都有特定的包名。
推荐阅读
- python - 根据数据框列中的值将 2-D numpy 数组重构为 3-D numpy 数组
- if-statement - 是否可以在 Kotlin 的“if”条件内声明一个变量?
- python - 将时间列绘制为 x 轴刻度时出错
- angular - 吸气剂构造可以在没有相关属性的情况下存在吗?
- angular - 将 PrimeNG 表导出到 Excel 文件 (xlsx)
- sql - 替换字符串中的字符而不影响名称
- wordpress - 如何在 wordpress 中将内容添加到类别 woocomerce
- node.js - 如何在 React js Web 应用程序中添加 PAYTM 网关集成?
- c++ - 如何初始化大线程本地对象?
- gams-math - (GAMS) 加载 gdx 文件时如何使用子集?