首页 > 解决方案 > 生成用于发布的 APK 的 Proguard 错误 - 任务“:app:transformClassesAndResourcesWithProguardForRelease”执行失败

问题描述

我无法在启用 proguard 的情况下生成我的 APK。我不想通过在我的 proguard-rules.pro 文件中添加 -ignorewarnings 来忽略这个问题,我想解决它。这里是错误消息和我的代码:

构建错误信息:

org.gradle.initialization.ReportedException:org.gradle.internal.exceptions.LocationAwareException:任务':app:transformClassesAndResourcesWithProguardForRelease'执行失败。在 org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:137) 在 org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:107) 在 org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController. java:78) at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152) at org.gradle.internal。 invocation.GradleBuildController.doBuild(GradleBuildController.java:100) 在 org.gradle.internal.invocation.GradleBuildController。在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 运行(DaemonStateCoordinator.java:297) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run( ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) 原因:org.gradle.internal.exceptions.LocationAwareException:任务“:app:transformClassesAndResourcesWithProguardForRelease”执行失败。在 org.gradle.initialization 的 org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74)。在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 运行(DaemonStateCoordinator.java:297) org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 原因:org.gradle.api.tasks.TaskExecutionException:任务':app:transformClassesAndResourcesWithProguardForRelease'执行失败。在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 在 org.gradle. .api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) 在 org.gradle。执行(DefaultBuildOperationExecutor.java:197)在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) ... 27 更多原因:java.io.IOException:请先更正上述警告。在 proguard.Initializer.execute(Initializer.java:473) 在 proguard.ProGuard.initialize(ProGuard.java:233) 在 proguard.ProGuard.execute(ProGuard.java:98) 在 com.android.build.gradle.internal。 transforms.BaseProguardAction.runProguard(BaseProguardAction.java:61) 在 com.android.build.gradle.internal.transforms.ProGuardTransform.doMinification(ProGuardTransform.

构建.gradle:

apply plugin: 'com.android.application'

android {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        maven { url "https://maven.google.com" }
        mavenCentral()
    }
    compileSdkVersion 27
    buildToolsVersion '27.0.2'
    defaultConfig {
        applicationId "com.myapplicationId"
        minSdkVersion 17
        targetSdkVersion 27
        multiDexEnabled true
        versionCode 9
        versionName "9.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            debuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.github.bumptech.glide:glide:3.7.0'
    implementation 'com.crystal:crystalrangeseekbar:1.1.3'
    implementation 'com.google.code.findbugs:jsr305:2.0.1'
    implementation 'com.wang.avi:library:2.1.3'
    implementation 'com.android.support:recyclerview-v7:27.0.2'
    implementation 'com.github.jd-alexander:android-flat-button:v1.1'
    implementation 'com.github.varunest:sparkbutton:1.0.3'
    implementation 'com.android.support:design:27.0.2'
    implementation 'com.makeramen:roundedimageview:2.3.0'
    implementation 'com.roughike:bottom-bar:2.2.0'
    implementation 'com.google.firebase:firebase-database:15.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.2'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'
    implementation 'com.firebaseui:firebase-ui-auth:4.0.0'
    implementation 'com.android.support:support-v4:27.0.2'
    implementation 'com.android.support:support-core-utils:27.0.2'
    //implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'de.hdodenhof:circleimageview:2.1.0'
    implementation 'com.facebook.android:facebook-android-sdk:4.+'
    implementation 'com.android.support:preference-v7:27.0.2'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    androidTestImplementation 'junit:junit:4.12'
    implementation 'com.google.firebase:firebase-core:16.0.0'
    implementation 'com.google.firebase:firebase-messaging:17.1.0'
    implementation 'com.firebase:firebase-jobdispatcher:0.6.0'
    implementation 'com.android.billingclient:billing:1.0'
    implementation 'com.google.firebase:firebase-ads:15.0.1'
    implementation files('libs/Final Android Resizer.jar')
}

apply plugin: 'com.google.gms.google-services'

proguard-rules.pro:

# firebase : Add this global rule
-keepattributes Signature

# firebase : This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models. Modify to fit the structure
# of your app.
-keepclassmembers class com.mypackagename.** { *; }

-keep class com.wang.avi.** { *; }
-keep class com.wang.avi.indicators.** { *; }
-dontwarn com.roughike.bottombar.**

-dontwarn javax.annotation.**

#facebook
-keep class com.facebook.** { *; }

#glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {   **[] $VALUES;   public *; }

-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-keepnames class org.jsoup.nodes.Entities

你看出什么问题了吗?

标签: androidgradleproguardandroid-proguard

解决方案


推荐阅读