android - 生成用于发布的 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
你看出什么问题了吗?
解决方案
推荐阅读
- angular - Jhipster:使用户能够创建自动链接到其帐户的对象
- tensorflow - 将 InceptionV3 pb 文件转换为 tflite
- java - 通过 maven cmd 运行一个测试的多个命令
- javascript - 重定向期间的 EPIPE 错误,Koa js,React 的 SSR
- spring-boot - 无法解析符号 WebSecurityConfigurerAdapter
- python - 有没有办法遍历给函数的每个变量并确定其类型?
- apache-spark - HDFS & Spark - 重写部分大文件
- github - 从 Git 存储库中删除了大文件但仍然无法推送
- r - 在任意函数的调用中检查多个丢失的参数
- ios - 如何检测 UICollectionViewCell 中的 UITableViewCell 中的按钮点击?