尝试生成签名Apk时出现Gradle构建错误

13

大约34小时前我生成了一个已签名的apk包,但现在我无法生成一个已签名的apk包,也不知道如何修复这个问题。请帮忙。

以下是我的输出信息:

错误:注意:有11个重复的类定义。 (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass) 失败:执行任务时出现异常。

BUILD FAILED in 10s

以下是我的build.gradle(app):

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 26
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "com.myapp……"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 5
        versionName "5.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "com.android.support:appcompat-v7:$support_version"
    implementation "com.android.support:design:$support_version"
    implementation "com.android.support:support-v4:$support_version"
    implementation "com.android.support:cardview-v7:$support_version"
    implementation "com.android.support:recyclerview-v7:$support_version"
    implementation "com.google.firebase:firebase-core:$firebase_version"
    implementation "com.google.firebase:firebase-messaging:$firebase_version"
    implementation "com.google.firebase:firebase-ads:$firebase_version"
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.1'
    implementation "com.google.firebase:firebase-perf:$firebase_version"
    implementation 'io.github.yavski:fab-speed-dial:1.0.6'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.codemybrainsout.rating:ratingdialog:1.0.8'
    implementation 'com.android.billingclient:billing:1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'org.jsoup:jsoup:1.10.3'
    testImplementation 'junit:junit:4.12'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}
apply plugin: 'com.google.gms.google-services'

apply plugin: 'kotlin-android-extensions'

以下是我的 build.gradle(project)文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.10'
    ext.support_version = '26.1.0'
    ext.firebase_version = '12.0.1'
    repositories {
        jcenter()
        google()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath 'io.fabric.tools:gradle:1.25.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.1.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
2个回答

38

这是一个lintValidRelease问题。 你需要在Gradle文件中添加lintOptions。

android {
..
     lintOptions {

        checkReleaseBuilds false

    }
}

谢谢!那个方法可以行,但我所做的是在生成签名Apk时连接到了互联网,它自己完成了魔法。 - EdgeDev
4
添加 lintOptions 可以解决问题,但这似乎只是一个权宜之计。请问根本原因是什么?我已经连接到互联网,但并没有帮助。 - 0xF
我还想找到这个问题的根本原因。突然间,我的CircleCi开始抛出这个错误 `Execution failed for task 'app: lintVitalRelease'。
无法解决配置文件'app: lintClassPath'的所有文件。 找不到lint-checks.jar(com.android.tools.lint:lint-checks:26.1.2)。 在以下位置搜索: https://jcenter.bintray.com/com/android/tools/lint/lint-checks/26.1.2/lint-checks-26.1.2.jar`
- Rohit Karadkar
有时禁用防火墙可能会有所帮助。 - prodeveloper

2

对我来说,问题是由于allproject部分缺少存储库:

buildscript {
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
}

allprojects {
    ...
    repositories {
        mavenCentral()
        google()
        jcenter()
    }
}

在我添加了 google()jcenter() 后,这个项目现在已经成功构建。


对我来说似乎没有什么区别,至少在位于“app”目录上一级的build.gradle文件中没有。 - Dylan Nicholson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接