【发布时间】:2020-04-19 12:36:27
【问题描述】:
当 Android Studio 开始将代码标记为红色时,我遇到了一个问题:
当我单击查看 findViewById() 的源代码时,它会将我带到与我的项目的编译 SDK 版本 (29) 不同的 Android SDK 16 的源代码。 同时在同一个项目中的其他一些类中没有这样的问题,findViewById 运行良好。单击它会将我带到正确的 Android SDK 29 源。
我的项目编译 SDK 版本设置为 29,它的依赖项使用 compile sdk 从 16 到 25。
我已经试过了:
- 清理项目。
- 重建项目。
- 使缓存无效/重新启动
- 重新安装 Android Studio 并安装 Beta 版。
- 尝试在不存在此类问题的情况下使用不同的 GIT 提交。
- 已删除 /.idea 和 /.gradle 文件夹。
- 当我从 ~/Library/Android/sdk/platforms/android-16 中删除 Android SDK 源时,它会有所帮助,直到下一次重建(然后 Studio 会自动再次下载它)
问题的起因:为了修复 GIT 历史记录,我从工作目录中删除了所有文件,并在那里复制粘贴了一个新版本。我知道,这不是一个优雅的解决方案,但 git 差异没有问题。问题是这个“红色代码”问题现在存在于所有以前的提交中。
项目编译没有错误,可以安装应用程序!
请帮忙!
更新:这个问题只出现在片段中! Fragment 中的 getView() 以某种方式给了我不同版本的视图?
【问题讨论】:
-
两个源文件是否在同一个模块中?还要检查所有 .gradle 文件是否存在潜在问题。乍一看,这确实像是 Android Studio 中的一个错误。
-
@JensV 两个文件都在同一个模块中。请查看我的更新。
-
这确实很奇怪...如果您有时间,我会尝试从您的用户目录中删除所有 .AndroidStudio 文件夹,删除 .idea 和 .gradle 文件,删除整个 android sdk并尝试再次重新导入项目。如果编译得很好,它似乎确实是一个与 IDE 相关的问题
-
已删除 Android Studio 及其缓存文件。没有帮助。
-
我不知道除了上传示例项目供我们测试之外我们是否可以帮助您