升级到 Gradle 版本 4.0.0 会破坏 R8 代码缩减



我已经将我的 gradle 版本从 3.6.3 升级到 4.0.0。Android Studio能够在minifyenabled为真且gradle版本为3.6.3时正确安装该应用程序,没有任何问题。在 gradle 版本 4.0.0 和 minifyenabled 设置为 true 上,甚至不会安装该应用程序。这是我看到的:

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_INVALID_APK
List of apks:
[0] 'C:UsersuserDesktopProjectsApplicationappbuildoutputsapkdebugapp-debug.apk'
[1] 'C:UsersuserDesktopProjectsApplicationmodule1buildoutputsapkdebugmodule1-debug.apk'
[2] 'C:UsersuserDesktopProjectsApplicationmodule2buildoutputsapkdebugmodule2-debug.apk'
[3] 'C:UsersuserDesktopProjectsApplicationmodule3buildoutputsapkdebugmodule3-debug.apk'
[4] 'C:UsersuserDesktopProjectsApplicationmodule4buildoutputsapkdebugmodule4-debug.apk'
[5] 'C:UsersuserDesktopProjectsApplicationmodule5buildoutputsapkdebugmodule5-debug.apk'
The APKs are invalid.

build.gradle 文件:

android {
compileSdkVersion androidDependencies.compile_sdk_version
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.pills.mydemoapplication"
minSdkVersion androidDependencies.min_sdk_version
targetSdkVersion androidDependencies.target_sdk_version
versionCode 7
versionName "5.0.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
kotlinOptions {
jvmTarget = "1.8"
}
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures{
dataBinding = true
}
dynamicFeatures = [":module1", ":module2", ":module3", ":module4", ":module5"]
}

项目级 build.gradle

buildscript {
ext.kotlin_version = '1.3.72'
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools:r8:1.6.84"
classpath "com.android.tools.build:gradle:4.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.0-beta01"
}
}

从项目级别 build.gradle 中删除以下行使其正常工作。

classpath "com.android.tools:r8:1.6.84"

默认情况下,R8 现在与 Android Gradle 插件捆绑在一起,AGP 中的 R8 版本是 2.0.74,我用一个更旧的版本覆盖了它,这破坏了 R8 代码的收缩。

确保所有库和类路径都是最新的。我有一个过时的火碱插件类路径。使用新的 gradle 时会出现此问题。更新类路径后,一切看起来都很好。

就我而言。我改变了这个

classpath 'com.google.firebase:firebase-plugins:1.1.0'

对此

classpath 'com.google.firebase:perf-plugin:1.3.1'

最新更新