Android Studio变得非常缓慢且不断更新索引"

时间:2016-12-07 16:38:29

标签: java android performance android-studio gradle

关于SO还有更多类似的问题,但我还没有找到他们的答案,所以我开了新的答案。

我正在使用:

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

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

直到几周前它一直很好用,现在它的速度非常缓慢。大多数情况下,"索引/更新索引"

我并不关心构建时间(大约需要30-40秒,但我可以忍受这种情况)和那种使编码几乎不可能的常量索引(整体响应性非常差)。

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

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

build.gradle // app

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
    }

P.S。 我启用了 - 离线工作,并行和守护进程。我增加了VM堆大小。我已经上传到最新的Android Studio。我用jcenter()取代了maven。 有什么我想念的吗?

12 个答案:

答案 0 :(得分:38)

它也发生在我身上,我只是同步'app'并且它已经解决了......

或者使用此

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

答案 1 :(得分:16)

此外,您可以尝试:

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

这对我有用。

答案 2 :(得分:15)

对于遇到同样问题的其他人:

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

  • 用 - >替换maven jcenter()
  • 在属性中设置标志以使用默认gradle包装
  • 将android studio更新为最新版本(目前为2.2.3)
  • 启用了gradle守护程序 - 按需配置
  • 使缓存无效并重启(几次)
在问这个问题之前,我已尝试了一些其他方法,但我认为当我上次更新到Android studio 2.2.3时,所有内容都恢复正常

答案 3 :(得分:4)

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

答案 4 :(得分:2)

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

enter image description here

,一切顺利。

答案 5 :(得分:1)

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

要执行此操作,请change Studio's JVM options(帮助 - >编辑自定义VM选项...)以包含-Xmx2g,其中2g是足以让Studio满意您的内存量_getSingleContract项目的复杂性。

答案 6 :(得分:1)

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

然后在打开的对话框中选择“无效并重新启动”

就是这样。

答案 7 :(得分:0)

我遇到了同样的问题,但只有拥有多个套餐才能解决问题。在' app / java / com.example.projectname' 下 如果您的java文件夹中有多个包,请尝试此操作。它立即为我工作。

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

接下来,回到Android Studio并打开你所有的' .java'文件。在代码的顶部,您应该看到Boundary 因为您已经删除了'套餐'并重新安置了' .java'文件,你需要改变每个' .java'文件包以阅读package com.example.android.projectname.subfolder;

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

希望这有效。

答案 8 :(得分:0)

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

谢谢。

答案 9 :(得分:0)

我在Android Studio 4.0.1中遇到了同样的问题。像在顶部答案中建议的那样按sync button并不能解决问题。它实际上创建了第二个循环。而且我不想invalidate the caches

但是我只需restarting Android Studio就可以轻松解决。

答案 10 :(得分:0)

对我来说,有一个损坏的模块,它有某种奇怪的符号链接,导致对 std::array<int, std::tuple_size_v<T>> res{}; 中的所有文件进行索引,这不仅导致索引过长,而且创建了大量缓存。

>

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

答案 11 :(得分:0)

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

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