我的Android Studio项目过去构建得更快,但现在需要很长时间来构建。知道是什么导致了延误吗? 我试过https://stackoverflow.com/a/27171878/391401但没有效果。我没有运行任何可能中断构建的反病毒程序。我的应用程序也没有那么大(大约5MB),它曾经在几秒钟内构建,但不确定发生了什么变化。

10:03:51 Gradle build finished in 4 min 0 sec  
10:04:03 Session 'app': running  
10:10:11 Gradle build finished in 3 min 29 sec  
10:10:12 Session 'app': running  
10:20:24 Gradle build finished in 3 min 42 sec  
10:28:18 Gradle build finished in 3 min 40 sec  
10:28:19 Session 'app': running  
10:31:14 Gradle build finished in 2 min 56 sec   
10:31:14 Session 'app': running  
10:38:37 Gradle build finished in 3 min 30 sec  
10:42:17 Gradle build finished in 3 min 40 sec  
10:45:18 Gradle build finished in 3 min 1 sec  
10:48:49 Gradle build finished in 3 min 30 sec  
10:53:05 Gradle build finished in 3 min 22 sec  
10:57:10 Gradle build finished in 3 min 19 sec  
10:57:11 Session 'app': running  

当前回答

如果你使用谷歌播放服务,确保你没有在你的Gradle构建脚本中使用这个:

compile 'com.google.android.gms:play-services:8.3.0'

只使用你的应用程序真正使用的谷歌api。如果你使用的是谷歌地图,你会使用这个:

com.google.android.gms:play-services-maps:8.3.0

当我这样做时,我的编译时间从2分钟多缩短到25秒左右。有关您可以选择性编译的谷歌api的列表,请参阅:

https://developers.google.com/android/guides/setup

其他回答

我遇到过这样的问题,尤其是通过手机主动调试时;有时需要27分钟。我做了以下事情,并记下每一项下的解释——其中一项可能对你有用:

改了我的gradle。properties文件(在Gradle脚本下,如果你有项目文件视图在Android选项下或在你的项目文件夹内)。我添加这个是因为我的电脑有一些空闲的内存-你可以在最后分配不同的值,这取决于你的电脑规格和android工作室的最低要求(Xmx8000m - xx:MaxPermSize=5000m):

org.gradle.daemon = true org.gradle.configureondemand = true org.gradle.parallel = true android.enableBuildCache = true org.gradle.caching = true org.gradle。jvmargs=-Xmx8000m -XX:MaxPermSize=5000m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

这并没有完全解决我的问题。因此,我也做了其他人之前建议的事情——让我的构建过程离线:

文件->设置/首选项->构建,执行,部署-> Gradle 全局Gradle设置(在底部) 将复选框标记为:脱机工作。

这大大减少了时间,但它是不稳定的;有时需要更长的时间。因此,我对即时运行做了一些更改:

文件->设置/首选项->构建,执行,部署->即时运行 选中:启用立即运行热插拔代码… 检查:代码更改时重新启动活动…

The move above was erratic also and therefore I sought to find out if the problem may be the processes/memory that ran directly on either my phone and computer. Here I freed up a little memory space in my phone and storage (which was at 98% utilized - down to 70%) and also on task manager (Windows), increased the priority of both Android Studio and Java.exe to High. Take this step cautiously; depends on your computer's memory. After all this my build time while debugging actively on my phone at times went down to 1 ~ 2 minutes but at times spiked. I decided to do a hack which surprised me by taking it down to seconds best yet on the same project that gave me 22 - 27 minutes was 12 seconds!:

连接电话进行调试,然后单击RUN 在它开始后,拔下电话-构建应该继续更快,并在结束时引发一个错误,指出这一点:Session 'app':安装APKs错误 重新连接电话并再次单击RUN…

另外

如果我调试的脚本/函数/方法是纯粹的JAVA,而不是JAVA- Android,例如测试一个API与JSONArrays/JSONObjects,我测试我的JAVA函数/方法在Netbeans可以编译一个文件,并显示输出更快,然后对我的Android Studio文件进行必要的更改。这也为我节省了很多时间。

EDIT

我尝试在本地存储中创建一个新的android项目,并将之前项目中的所有文件复制到新的项目中- java, res, manifest, gradle应用程序和gradle项目(带有最新的gradle类路径依赖项)。现在我可以在不到15秒的时间内构建我的手机。

1)我的构建时间严重增加后,我添加了一些新的库依赖到我的gradle文件,结果我需要使用multidex之后。当我正确设置multidex时,我的构建时间增加到2-3分钟。因此,如果您想要更快的构建时间,请避免使用multidex,并尽可能减少库依赖项的数量。

2)你也可以尝试在android studio中启用“离线工作”,就像这里建议的那样,这是有意义的。这将不会在每次构建时重新获取库。可能由于禁用了“脱机工作”而导致连接缓慢或代理/vpn使用缓慢可能导致构建时间变慢。

3)谷歌服务-正如这里提到的,不要使用整个捆绑包,只使用它需要的部分。

在Android Studio中,Version 3.6以上,有一个新的位置来切换Gradle的离线模式来启用或禁用Gradle的离线模式。

要启用或禁用Gradle的离线模式,请从菜单中选择View > Tool Windows > Gradle。在Gradle窗口的顶部栏中,单击“切换离线模式”(靠近设置图标)。

这个图标有点让人困惑,不管怎样,当切换按钮高亮显示时,离线模式是启用的。:)

我很长一段时间都面临着同样的问题,但我通过调整gradle中的设置解决了它。

步骤1:在Module app中添加BuildScript中的依赖项

buildscript {
 dependencies {
         classpath 'com.android.tools.build:gradle:2.0.0-alpha9'
}
}

步骤2:添加dexOption并给出以下heapSize

  dexOptions {
    incremental = true;
    preDexLibraries = false
    javaMaxHeapSize "4g"
}

第三步:添加产品口味

    productFlavors {
    dev {
        minSdkVersion 23
        applicationId = "com.Reading.home"
    }
    prod {
        minSdkVersion 15
        applicationId = "com.Reading.home" // you don't need it, but can be useful

    }
}

这将减少您的构建时间。

我也有同样的问题,甚至gradle构建运行了8个小时,我很担心。但后来我改变了编译sdk版本和最小sdk版本在构建。像这样的Gradle文件。

年龄:

android {
compileSdkVersion 25
buildToolsVersion "29.0.2"

defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 9
    targetSdkVersion 25
}

新(更新):

android 
{
  compileSdkVersion 28
   buildToolsVersion "25.0.2"

 defaultConfig {
    applicationId "com.uwebtechnology.salahadmin"
    minSdkVersion 15
    targetSdkVersion 28
 }