在 Android Studio 4.1 中扫描文件以建立索引永远不会结束

Posted

技术标签:

【中文标题】在 Android Studio 4.1 中扫描文件以建立索引永远不会结束【英文标题】:Scanning files to index never ends in Android Studio 4.1 【发布时间】:2021-01-31 16:49:07 【问题描述】:

我正在使用 cocos2d-x v4、macOS Catalina 10.15.6、android Studio 4.1。

我用 cocos2d-x v4 做了一个项目。

我正在使用 Android Studio 构建一个 Android 应用。

直到几天前它才起作用。 但是在将 Android Studio 更新到 4.1 之后,一切都出错了。 当我打开项目时,它会在 Android Studio 底部显示正在扫描文件以索引 .. 并且它永远不会结束。

左侧的 Android 选项卡总是显示正在加载 ..

我尝试了以下方法,但都没有解决问题。

使缓存无效/重新启动 卸载并重新安装 Android Studio 重新安装旧版 Android Studio

当我卸载 Android Studio 时,我运行了以下命令来删除所有旧文件。

rm -Rf /Applications/Android\Studio.app
rm -Rf ~ / Library / Preferences / AndroidStudio *
rm ~ / Library / Preferences / com.google.android.studio.plist
rm -Rf ~ / Library / Application \ Support / AndroidStudio *
rm -Rf ~ / Library / Logs / AndroidStudio *
rm -Rf ~ / Library / Caches / AndroidStudio *
rm -Rf ~ / .gradle
rm -Rf ~ / .android
rm -Rf ~ / Library / Android *

我花了很多时间重新安装 Android Studio。 我想尽快解决这个问题。 请让我知道是否有解决方案。 谢谢。

【问题讨论】:

【参考方案1】:

我有同样的问题,但我通过删除 Android 项目根目录下的.idea 目录解决了。

【讨论】:

为我工作,谢谢! 也为我工作,谢谢【参考方案2】:

我在 Cocos2d-X 3.17 项目中遇到了同样的问题。在 3.5 中完美运行,但在 4.1 中它继续索引。强制停止并重新打开会导致永恒的沙滩球。

通过删除项目中的所有 .iml 文件和 .idea 文件夹,并使 Studio 中的所有缓存失效,我可以加载项目。然后我让它整夜索引(在 Activity Monitor 中,我可以看到它正在读取大量数据......远远超过项目大小的 15GB)而没有触及任何东西。

早上它实际上已经完成了索引。然而; Studio 想要更新一些组件,然后索引地狱又开始了(使用带有 MacOS 10.15.7 的 imac pro)。

更新:Android Studio 4.1 似乎正在索引计算机上的所有内容。它现在正在处理 ~/Library/Containers/com.apple.iWork.keynote。问题是在那里,有一个指向驱动器的符号链接,然后导致重复扫描和重新扫描文件夹。这也解释了为什么该应用想要访问联系人、日历和提醒......

更新2:我现在似乎已经通过从索引中排除应用程序项目文件夹来解决它(右键单击文件夹,选择“将目录标记为”并选择排除)。要显示文件夹,您可能必须在启动 Studio 之前删除项目中的 .idea 和 .gradle 文件夹。

【讨论】:

Windows 上的 4.2 RC1 似乎正在索引我的整个机械 4 驱动器 RAID 驱动器。所以这仍然是一个问题。另外,如果没有您的回复,我不会发现这一点。 @AdamHowell 我可以确认 android-studio-ide-202.7322048-windows.exe 也是如此。 Android Studio 开始索引我的整个该死的硬盘。谁让这件事溜走就应该被解雇。【参考方案3】:

一个非常简单的解决方案是删除所有缓存:

1 关闭 Android Studio

2 转到:

C:\Users\ME\AppData\Local\Google\AndroidStudio2020.3 // 或您当前的版本

3 然后点击“缓存”目录

4 然后删除所有缓存文件(有两个文件夹叫project_resources和resources well DO NOT DELETE THESE FOLDERS)

5 重启 Android Studio

【讨论】:

【参考方案4】:

我有同样的问题,首先我尝试更改 inotify 限制但没有效果。我删除了所有的 .idea 目录,这是一个小小的改进,但仍然无法使用。

解决方案是创建一个新用户,使用 Android Studio,几乎没有其他文件

【讨论】:

【参考方案5】:

我昨天刚尝试打开从 github 获取的项目(相对较小)时遇到了这个问题。在 Ubuntu 上,使用 AS 4.1.3。

最初,它索引了很长时间。我做了一些事情,比如重新启动 AS,或者删除 .ideas 和 .gradle 等等,但都是徒劳的。然后我不得不让它运行。它实际上在很长一段时间后完成了索引。

然后我尝试重构并迁移到 Androidx,它通过寻找这个和那个无休止地运行。我打断了它几次,并尝试了删除文件夹和清除缓存等旧技巧。没有用。有一次,重构过程搜索完毕,提示我确认重构。然后我发现有很多文件不在这个项目中!

然后我去检查项目文件结构(在左窗格中,通常它显示为Android结构),我发现项目的根目录是我的主目录(/home/leok)而不是所在的目录项目文件位于我的主目录的深处。因此,我怀疑它正在遍历我的所有文件。但我想知道为什么会这样。

然后我检查了 build.gradle 文件。原来有一个对像“/Data/xxxx/yyyy/etc”这样的目录的引用(我不明白原作者为什么要这样设置,但我猜是为了构建一些中间数据)。我的机器上实际上没有那个目录,奇怪的是,AS 或 gradle 不知何故设法从文件系统的根目录工作到我的主目录,我猜它确定它可以获得写权限,这是一种非常不道德的行为。

然后在 build.gradle 中,我将该引用更改为“Data/xxxx”,它应该指向项目目录下的子目录,瞧,问题解决了。索引正常,重构不足。

所以这是一个教训。花了一天的大部分时间。

【讨论】:

【参考方案6】:

作为一个临时解决方案,我将 cache 文件夹重命名为 _cache 并且能够摆脱这个问题。

    从任务管理器中杀死工作室。 将文件夹重命名为其他名称(我 只是不想删除它)。 再次启动 Studio。

一旦我弄清楚实际原因,我会在这里更新。

【讨论】:

以上是关于在 Android Studio 4.1 中扫描文件以建立索引永远不会结束的主要内容,如果未能解决你的问题,请参考以下文章

在Android Studio中将Gradle从3.3升级到4.1后出错

Android Studio 4.1 中缺少 Logcat

Android studio 4.1 Emulator 扩展控件

Android Studio 4.1+ 模拟器侧边栏?

无法在三星设备上的 Android Studio 3.4.1 中运行项目

Android Studio 4.1 插件错误:插件 * 不兼容(仅在 IntelliJ IDEA 中支持)