当前位置: 首页 > 知识库问答 >
问题:

在multidex应用中加速gradle构建

段干华皓
2023-03-14

我的应用程序有一堆必不可少的库,这就是为什么我被迫使用multidex支持库,它工作得很好。但问题出在梯度速度上。它平均需要2分钟来构建,当我开发和测试时,这是相当烦人的。

有没有一种方法可以加快我的调试构建?

共有1个答案

邹山
2023-03-14

您可以通过指定最低SDK版本=21.1来加快开发构建。
官方文档包括一整节关于这一点的内容。

示例(来自文档):

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
          ...
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                                                 'proguard-rules.pro'
        }
    }
}
dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

添加了产品风格之后,就可以为开发构建使用devdebug任务(而不是默认的debug任务):
-from命令行:run./gradlew installdevdebug
-from Android studio:打开Build Variants窗口并选择devdebugBuild variant。

对于那些不想使用口味的人来说,也有一个解决方案。按照本要点中的建议,动态计算minsdkversion值:

int minSdk = hasProperty('devMinSdk') ? devMinSdk.toInteger() : 14
apply plugin: 'com.android.application'

android {
    ...
    defaultConfig {
        minSdkVersion minSdk
        ...
    }
}

在本例中,我们检查是否定义了devminsdk属性,如果为true-我们正在使用它。否则,我们默认为14。

我们如何传递devminsdk值来构建脚本?两种选择:

./gradlew installDebug -PdevMinSdk=21
 类似资料:
  • 自从上次更新(从6月25日开始构建)以来,Android studio Gradle的任何改动都非常缓慢。当你编辑文件并在keyup上重新编译时,它似乎还会自动跟踪更改。 在我的i5上,每次更改都需要几分钟的时间。

  • 问题内容: 我正在尝试从build.gradle文件中运行Groovy类。我遵循使用指南中的指示,但是出现错误。 构建文件为: 常规类很简单: 但是,当我尝试运行gradlew编译fooTask时,出现以下错误: 无法解析类groovyClass 知道为什么吗? 谢谢 问题答案: 如果要从构建中引用它,则需要添加该类(而不是在简单的Exec任务中)。给定此目录结构: 在哪里: 并且是: 然后,运行

  • 也许是一个已知的问题,但正在寻找加快Android Studio构建的方法。我的时间大约是20-25秒,并不可怕,但在尝试测试增量变化时有点麻烦。 显然,获得更快的CPU会有所帮助,但如果有的话,请寻找Android Studio的软件级别调整/提示。 谢了。

  • 问题内容: 我正在尝试使用Gradle构建相对简单的JavaFX应用程序。但是,我不知道该怎么做。 我是Gradle的新手,对于简单的(非javafx)项目,我已经成功使用了插件,并构建和打包了库和命令行应用程序。 但是,关于JavaFX,我完全陷入困境。我已经阅读了这篇文章,该文章建议使用该插件,但是我只能找到该插件的源代码,但是没有关于如何实际使用它的文档(在文章中,他们只是从远程URL应用它

  • 问题内容: 我正在尝试使用Gradle命令行界面构建我的Android应用。我还将 GRADLE_HOME / bin 添加到环境中。首先,我使用gradle init生成了包装,gradlew在我的项目文件夹中。现在,当我使用此包装程序构建我的应用程序( ./gradlew build )或使用其任何功能时,它尝试下载gradle-2.3.zip文件并失败(以下错误消息)。我不明白的是为什么gr

  • 我试图使用Gradle构建一个相对简单的JavaFX应用程序。但是,我完全不知道该怎么做。 我对Gradle比较陌生,对于简单的(非JavaFX)项目,我已经成功地使用了插件和来构建和打包库和命令行应用程序。 然而,当涉及到JavaFX时,我完全被卡住了。我读过这篇文章,其中建议使用插件,但是我只能找到这个插件的源代码,而没有关于如何实际获取它和使用它的文档(在文章中,他们只是从远程URL应用它,