首页 > 解决方案 > 任务 ':app:transformClassesWithMultidexlistForFreeDebug' 执行失败

问题描述

build.gradle(模块:应用程序)

apply plugin: 'com.android.application'

android {

    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    defaultConfig {
        applicationId ""com.khaidemsandipsingha.builditbigger""
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
    packagingOptions {
        exclude 'LICENSE.txt'
    }
    flavorDimensions "tier"
    productFlavors {
        paid {
            applicationId 'com.example.khaidemsandipsingha.builditbigger.paid'
            versionName '1.0-paid'
            buildConfigField "boolean", "PAID_VERSION", "true"
            dimension "tier"
        }
        free {
            applicationId 'com.example.khaidemsandipsingha.builditbigger.free'
            versionName '1.0-free'
            buildConfigField "boolean", "PAID_VERSION", "false"
            dimension "tier"
        }
    }

    sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'src/main/java/com.example.khaidemsandipsingha.builditbigger.paid']
        }
        paid {
            manifest.srcFile 'src/paid/AndroidManifest.xml'
        }
        free {
            manifest.srcFile 'src/free/AndroidManifest.xml'
        }
    }


    repositories {
        maven { url "https://maven.google.com" }
    }
}

dependencies {

    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //Tests
    androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'
    //Support
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    // Added for AdMob
    freeImplementation 'com.google.android.gms:play-services:8.3.0'

    //Add AndroidJoke
    implementation project(':androidjoke')
    //Backend
    implementation project(path: ':backend', configuration: 'android-endpoints')
    implementation 'com.google.api-client:google-api-client-android:1.23.0'
    implementation 'com.google.api-client:google-api-client:1.23.0'
    implementation 'com.android.support:multidex:1.0.3'
}

构建错误输出 FAILURE: Build failed with an exception。

gradle build -s

org.gradle.api.tasks.TaskExecutionException:任务':app:transformClassesWithMultidexlistForFreeDebug'的执行失败。在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110) .api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59) 在 org.gradle.api.internal .tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 在 org.gradle.api.internal.tasks.execution。lang.RuntimeException: com.android.build.api.transform.TransformException: 生成主 dex 列表时出错。在 com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55) 在 com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104) 在 com.android.build.gradle.internal .pipeline.TransformTask.transform(TransformTask.java:212) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 在 org.gradle.api.internal 。项目。174) 在 org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) 在 org.gradle.api.internal.tasks 的 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) .execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99) ... 31 更多原因:com.android.build。 api.transform.TransformException:生成主 dex 列表时出错。在 com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:127) 在 com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:

GitHub项目链接:https ://github.com/Kurosakicoder/BuildItBiggerGradle-master

标签: androidandroid-studioandroid-gradle-plugin

解决方案


你的应用程序类呢?如果您没有,则需要创建一个并将其名称放在清单中,因为您的代码应该是这样的

AndroidManifest.xml

<application
        android:name="ApplicationName"
...
>

你的应用程序类将是:

public class ApplicationName extends MultiDexApplication{
.....

 @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

更新我注意到你使用

release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

当您在调试中运行应用程序时,这不起作用尝试导出版本,如果它有效,那么您需要在调试构建类型中添加这些配置


推荐阅读