无法从 R8 配置中删除“-ignorewarnings”(Android Proguard 问题)
Posted
技术标签:
【中文标题】无法从 R8 配置中删除“-ignorewarnings”(Android Proguard 问题)【英文标题】:Unable to remove "-ignorewarnings" from R8 Configuration (Android Proguard Issue) 【发布时间】:2020-10-16 18:39:31 【问题描述】:我正在尝试构建一个启用了 proguard 和 r8 的 android 应用程序。我添加了“-printconfiguration full-r8-config.txt”来打印完整的 R8 配置。
问题:即使在之后。 build.gradle 中的依赖项为零,我在文件 full-r8-config.txt
的末尾得到以下条目# The proguard configuration file for the following section is <unknown>
-ignorewarnings
# End of content from <unknown>
这意味着 proguard 在构建应用程序时忽略了警告。我想删除此条目,因为忽略警告可能很危险。无法在此条目中找出<unknown>
。
更多详情:
proguard-rules.pro
-printconfiguration full-r8-config.txt
App -> build.gradle
apply plugin: 'com.android.application'
android
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig
applicationId "com.proguard.kotlintest2"
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debug
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
项目 -> build.gradle
buildscript
ext.kotlin_version = "1.3.72"
repositories
google()
jcenter()
dependencies
classpath "com.android.tools.build:gradle:4.0.0"
allprojects
repositories
google()
jcenter()
task clean(type: Delete)
delete rootProject.buildDir
gradle.properties
org.gradle.jvmargs=-Xmx2048m
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
【问题讨论】:
【参考方案1】:目前-ignorewarnings
选项是在使用 R8 时由 Android Gradle 插件强制执行的,无法禁用。
这样做的理由是许多现有的配置文件都非常广泛地使用-dontwarn
,并且在警告方面没有与Proguard兼容的好方法。
【讨论】:
以上是关于无法从 R8 配置中删除“-ignorewarnings”(Android Proguard 问题)的主要内容,如果未能解决你的问题,请参考以下文章
R8 从 AndroidStudio 中抛出 NullPointerException,但不是从命令行通过 gradlew