Android Studio Gradle 冻结:app:transformClassesWithDexForRelease

Posted

技术标签:

【中文标题】Android Studio Gradle 冻结:app:transformClassesWithDexForRelease【英文标题】:Android Studio Gradle freeze on :app:transformClassesWithDexForRelease 【发布时间】:2018-05-27 16:11:08 【问题描述】:

在向我们的 android 项目添加一些库并将 compileSdkVersion 更改为 26 后,我们的应用程序停止在发布配置中构建。该过程在该阶段停止在 93%:app:transformClassesWithDexForRelease 并且工作 15 分钟后没有任何变化。那时,处理器加载了 75%,RAM 为 83%。 我们使用 Android Studio 3.0、gradle 2.3.3、Windows 10 x86 和 3GB RAM。 我们还尝试为 javaMaxHeapSize 设置不同的值。这是我们的 build.gradle 文件:

android 
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig 
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 204
        versionName "2.4"
        applicationId "ua.ers.simple***"
        //testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true
    
    buildTypes 
        release 
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    

    dexOptions 
        javaMaxHeapSize "1g"
    


repositories 
    flatDir 
        dirs 'libs-aar'
    


dependencies 
    compile fileTree(include: ['*.jar'], dir: 'libs')
    //compile fileTree(include: ['*.jar'], dir: 'libs/appodeal')
    compile fileTree(include: ['*.jar'], dir: 'libs/appodeal_dex')
    compile project(':library-circular-mod')
    compile project(':complexPreferences')
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile 'com.android.support:design:26.1.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.ads.consent:consent-library:1.0.3'
    testCompile 'junit:junit:4.12'

    //Appodeal
    compile 'com.google.android.gms:play-services-ads:15.0.1'
    compile 'com.google.android.gms:play-services-location:15.0.1'
    compile 'com.google.android.gms:play-services-gcm:15.0.1'
    //Appodeal
    compile 'com.google.code.gson:gson:2.8.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    //for Inmobi
    compile name: 'adcolony-sdk-3.3.0', ext: 'aar'
    compile name: 'mobvista-8.11.0-alphab', ext: 'aar'
    compile name: 'mobvista-8.11.0-common', ext: 'aar'
    compile name: 'mobvista-8.11.0-interstitial', ext: 'aar'
    compile name: 'mobvista-8.11.0-interstitialvideo', ext: 'aar'
    compile name: 'mobvista-8.11.0-mvdownloads', ext: 'aar'
    compile name: 'mobvista-8.11.0-mvjscommon', ext: 'aar'
    compile name: 'mobvista-8.11.0-mvnative', ext: 'aar'
    compile name: 'mobvista-8.11.0-nativeex', ext: 'aar'
    compile name: 'mobvista-8.11.0-playercommon', ext: 'aar'
    compile name: 'mobvista-8.11.0-reward', ext: 'aar'
    compile name: 'mobvista-8.11.0-videocommon', ext: 'aar'
    compile name: 'mobvista-8.11.0-videofeeds', ext: 'aar'
    compile name: 'mobvista-8.11.0-videojs', ext: 'aar'

请帮忙,因为我们已经为这个问题苦苦挣扎了一个多星期,而且应用程序的更新时间很紧。谢谢。

【问题讨论】:

【参考方案1】:

按照Android docs 中的建议。 推荐的内存是8gb,我只是想知道你是否可以在3gb ram系统中运行Android Studio。因为我有 10gb ram,其中 6gb ram 总是由 JDK (3gb)Android Studio (3gb) 保留。而且我的系统有 i7 处理器,当我使用数据绑定时它会挂起。

您的应用在没有太多依赖项的情况下在低配置系统上运行,但如果项目要进行大型结构和更多依赖项,则您将需要至少 8gb 内存。

解决方案:

将内存增加到至少 8GB。 尝试使用一些有用的类而不是依赖项中的所有包。 清理项目,有时未使用的包仍保留在 Build 中。 如果您正在构建发布应用程序,请使用 proguard(将删除未使用的类和资源本身)。

【讨论】:

感谢您的回答。如上所示,我们尝试清理项目并使用 proguard。只有购买新 PC 才能增加 RAM 的大小,因为旧 PC 具有 32 位处理器。 我想再告诉你一件事,如果你第一次在项目中添加一些依赖项,那么构建将花费大量时间。但是下次当它有缓存时,它会在几秒钟内(或仅 1 分钟)构建 是的,我们知道。但是,在我们的例子中,我们等待了超过 15 分钟并没有得到结果,所以很可能 gradle 冻结了。 低配置系统有这个问题。你肯定应该增加 Ram。

以上是关于Android Studio Gradle 冻结:app:transformClassesWithDexForRelease的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - SQLite 插入冻结

Android Studio 模拟器总是被冻结

当我转到“设置”时,Android Studio会冻结

在打开预览的情况下编辑布局时 Android Studio 冻结?

即使使用新版本的 Windows 2.2.3,Android Studio 也会一直冻结

android studio gradle怎么改低