【问题标题】:Android Studio got very slow and constantly "updating indices"Android Studio 变得非常缓慢并且不断“更新索引”
【发布时间】:2017-04-22 17:01:44
【问题描述】:

在 SO 上有更多类似的问题,但我没有找到任何答案,所以我正在打开一个新问题。

我正在使用:

Android Studio 2.2.3(但与 2.2.2 相同) 摇篮 2.14.1 JRE 1.8.0

我在 Mac 上使用它,OS X El Capitan(2.5 GHz,i5,8GB RAM)。

直到几周前它一直运行良好,现在它变得非常缓慢。大多数时候是“索引/更新索引”

我并不关心构建时间(大约需要 30-40 秒,但我可以忍受),而是担心持续索引导致编码几乎不可能(整体响应能力很差)。

我的 gradle 文件中是否有任何可能导致此问题的内容?

我确实有一些依赖,但应用程序本身相对简单。

build.gradle //应用程序

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {

compileSdkVersion 23
buildToolsVersion "23.0.2"

dataBinding {
    enabled = true
}

defaultConfig {
    applicationId "com.example.myproduct"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"

}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
   }
}
dependencies {

    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.+'
    compile 'com.android.support:support-v4:23.2.+'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:design:23.2.+'

    compile 'com.jakewharton.threetenabp:threetenabp:1.0.4'

    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    compile 'com.squareup.picasso:picasso:2.5.2'

    compile 'io.reactivex:rxjava:1.0.10'
    compile 'io.reactivex:rxandroid:1.1.0'

    compile 'com.google.android.gms:play-services-auth:8.3.0'
    compile 'com.facebook.android:facebook-android-sdk:4.16.1'
}

build.gradle//项目

 buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        classpath 'com.google.gms:google-services:1.5.0-beta2'

       }
    }

    allprojects {
        repositories {
            jcenter()
        }
    }

    task clean(type: Delete) {
            delete rootProject.buildDir
    }

附: 我已启用 - 离线工作、并行和守护进程。我增加了 VM 堆大小。我已经上传到最新的 Android Studio。我已经用 jcenter() 替换了 maven。 我有什么遗漏吗?

【问题讨论】:

  • 它可能是你的机器,我工作场所的机器很糟糕,所以我通过外部硬盘运行 Android Studio 和 SDK 组件,它运行的速度和你现在想要的一样快,你可以试试自动更新也关闭了。
  • 我的工作电脑需要 5 分钟来构建,但由于编码没问题,所以我猜问题可能出在导入或不知道。几个问题:您从更新中心更新了所有内容吗?您是否尝试过重新编译所有项目以加载所需的所有内容?
  • 是的,我在上周做过几次,很奇怪..
  • 您可以尝试使缓存无效并重新启动。索引应该运行一次。您是否在项目中添加了新文件夹?如果它们发生变化,则会启动一个新的索引过程,因此具有生成代码的文件夹可以执行此操作。
  • 我也尝试过几次。

标签: java android performance android-studio gradle


【解决方案1】:

尝试将 Sdk 存储在其他驱动器上,并尝试使缓存无效并重新启动。 希望这会有所帮助

【讨论】:

  • 我已经将 SDK 存储在便携式驱动器上。但这对我没有帮助。
  • 你的电脑配置是什么?
  • 128 GB SSD、12 GB RAM、i3 第 4 代处理器。
【解决方案2】:

对于其他有同样问题的人:

我的 android 工作室恢复到原来的性能(没问题)。 我很难说是什么做出了改进,因为我一次做了很多改变,我记得以下几个:

  • 将 maven 替换为 -> jcenter()
  • 在属性中设置标志以使用 默认 gradle 包装器
  • 已将 android studio 更新至最新版本(目前为 2.2.3)
  • 已启用 gradle 守护程序 - 按需配置
  • 使缓存无效并重新启动(几次)

在问这个问题之前我已经尝试过其中一些,但我认为当我上次更新到 Android Studio 2.2.3 时一切都恢复正常了

【讨论】:

    【解决方案3】:

    这也发生在我身上,我只是同步“应用程序”并解决了...

    或者使用这个

    使缓存失效/在“文件菜单”下重新启动

    【讨论】:

    • 使缓存无效/重启解决了我的问题。谢谢。
    • 到底更新了什么?为什么一遍又一遍地花费这么多时间?
    • @Leon 一定是个bug
    【解决方案4】:

    我也遇到过同样的问题,但只有在 'app/java/com.example.projectname' 下有多个“包”时 如果你的 java 文件夹中有多个包,试试这个。它立即对我有用。

    在 Android Studio 的“项目窗口”中,右键单击 “app/java/com.example.android.projectname”,然后单击“在资源管理器中显示”。将所有“.java”文件从其子文件夹中移出,并将它们全部放在“app/java/com.example.android.projectname”文件夹中。

    接下来,返回 Android Studio 并打开所有“.java”文件。在您的代码顶部,您应该看到 package com.example.android.projectname.subfolder; 因为您已经删除了“包”并重新定位了“.java”文件,所以您需要将每个“.java”文件的包更改为读取package com.example.android.projectname;

    您还需要进入清单并更改 'activity android:name=...'

    希望这行得通。

    【讨论】:

      【解决方案5】:

      通过增加 Android Studio 进程的最大堆大小,我摆脱了不断的“更新索引”问题。

      为此,change Studio's JVM options(帮助 -> 编辑自定义 VM 选项...)包括 -Xmx2g 其中2g 是足以让 Studio 对您的项目复杂性感到满意的内存量。

      【讨论】:

        【解决方案6】:

        我刚刚删除了 .idea 文件夹并重新启动了 Android Studio,然后按下了“使用 Gradle 文件同步项目”按钮

        一切顺利。

        【讨论】:

        • 这为我修好了。
        【解决方案7】:

        另外,你可以试试:

        文件 -> 使缓存无效/重新启动...

        这对我有用。

        【讨论】:

        • 嗨 Rafael,这个问题已经得到解答,您的解决方案已经添加到评论中。
        【解决方案8】:

        只需转到文件 -> 使缓存无效/重新启动

        然后在打开的对话框中选择“Invalidate and Restart”

        就是这样。

        【讨论】:

          【解决方案9】:

          使缓存无效/重启解决了我的问题。

          谢谢。

          【讨论】:

            【解决方案10】:

            我在使用 Android Studio 4.0.1 时遇到了同样的问题。按最佳答案中建议的sync button 并没有解决问题。它实际上创建了第二个循环。而且我不想invalidate the caches

            但是我通过restarting Android Studio 轻松解决了它。

            【讨论】:

              【解决方案11】:

              对我来说,有一个损坏的模块,它有一些奇怪的符号链接,导致对 /usr/local 中的所有文件进行索引,这不仅导致索引过长,而且还创建了巨大的缓存。

              只需卸载模块即可。 Cmd+Shift+A(搜索所有内容)并查找“加载/卸载模块”。卸载所有不需要的模块。重新启动 IDE(使缓存失效也可能会有所帮助)并且应该修复无限索引的问题。

              【讨论】:

                【解决方案12】:

                在我的情况下,删除 gradle 缓存是可行的。

                rm -rf /User/user/.gradle/caches
                

                【讨论】:

                  猜你喜欢
                  • 2018-01-22
                  • 1970-01-01
                  • 2019-03-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多