我的构建在Android Studio中需要很长时间,超过2分钟,有时3分钟。我尝试了StackOverflow中解释的一些方法来加快构建时间,但它并没有解决我的问题。
app模块的build.gradle代码如下:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
// Adding The GIT SHA to Crashlytics crash reporting
def gitSha = 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim()
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.moymer"
minSdkVersion 11
targetSdkVersion 22
multiDexEnabled true
versionCode 5
versionName "2.0.0"
buildConfigField "String", "GIT_SHA", "\"${gitSha}\""
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
testCoverageEnabled true
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.android.support:design:22.2.0'
compile 'com.github.nirhart:parallaxscroll:1.0'
compile 'com.android.support:multidex:1.0.0'
compile('com.crashlytics.sdk.android:crashlytics:2.4.0@aar') {
transitive = true;
}
compile 'in.srain.cube:grid-view-with-header-footer:1.0.12'
compile 'com.android.support:recyclerview-v7:23+'
compile 'com.squareup:otto:1.3.8'
compile 'com.android.support:percent:23.0.0'
compile 'com.jakewharton.timber:timber:3.1.0'
compile project(':androidffmpeglibrary')
}
我的gradle.properties文件如下:
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
答案 0 :(得分:5)
你有11个以上的依赖项和一个额外的插件。至少有一个(androidffmpeglibrary
)似乎涉及NDK。这不会很快,特别是取决于你的构建硬件。
如果你想要更快的构建,摆脱一些垃圾。例如,What does "..." mean when next to a parameter in a go function declaration?超过一年;只使用你需要的部分,而不是“除厨房水槽之外的所有东西”play-services
神器。反过来,这可能允许您转储multidex
,因为您可能会回落到64K DEX方法参考限制之下。
Android Tools团队正致力于提高构建速度,该版本将在更新版本的Gradle Android插件中显示。这必须位于您的顶级build.gradle
文件中,因为我在这里看不到您的位置。确保你使用最新版本,并在新版本发布时不断更新。
答案 1 :(得分:1)
正如CommonsWare所描述的那样,拥有大量依赖关系会降低整体构建速度。截至目前,您可以开始使用具有instant run功能的Android Studio 2.0。
即时运行会减少构建时间,因为它只会推动非小的变化。无论您在代码中做了哪些更改,都首先分为三类 - 热插拔,热插拔和冷插拔。负载越小,交换越温暖,构建时间越快。
更改注释,静态字段等重大结构变化会进入冷交换。清单文件中的更改也包含在冷交换中。您可以查看完整列表here。
好消息是热交换中出现了大部分小变化,只要按下运行按钮,这些更改就会在正在运行的应用程序中快速推送。重新启动相关活动,您可以在几秒钟内看到更改。
Android Studio 2.0的稳定版本已发布,您可以下载from this link。它具有此即时运行功能。希望这会有所帮助。