【问题标题】:Upgrading to Gradle version 4.0.0 broke R8 code shrinking升级到 Gradle 版本 4.0.0 打破了 R8 代码收缩
【发布时间】:2020-05-30 04:06:25
【问题描述】:

我已将我的 gradle 版本从 3.6.3 升级到 4.0.0。当 minifyenabled 为 true 且 gradle 版本为 3.6.3 时,Android Studio 能够正确安装应用程序而没有任何问题。在 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:\Users\user\Desktop\Projects\Application\app\build\outputs\apk\debug\app-debug.apk'
[1] 'C:\Users\user\Desktop\Projects\Application\module1\build\outputs\apk\debug\module1-debug.apk'
[2] 'C:\Users\user\Desktop\Projects\Application\module2\build\outputs\apk\debug\module2-debug.apk'
[3] 'C:\Users\user\Desktop\Projects\Application\module3\build\outputs\apk\debug\module3-debug.apk'
[4] 'C:\Users\user\Desktop\Projects\Application\module4\build\outputs\apk\debug\module4-debug.apk'
[5] 'C:\Users\user\Desktop\Projects\Application\module5\build\outputs\apk\debug\module5-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"
    }
}

【问题讨论】:

  • 我认为清理项目(构建 -> 清理项目)可以解决这个问题。版本更改后缓存/编译的文件可能会导致类似的问题。
  • 我尝试清理构建、使缓存无效并重新启动、删除构建、.gradle、.idea 文件夹,但这些都不起作用。
  • 好像有类似的问题:stackoverflow.com/questions/60790653/…
  • 看起来相似但不相关,因为这与 R8 没有任何关系。

标签: android android-studio kotlin gradle build.gradle


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    确保您的所有库和类路径都是最新的。我有一个过时的 firebase-plugins 类路径。使用新的 gradle 时出现此问题。更新类路径后,一切正常。

    就我而言。我改变了这个

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

    到这里

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2022-09-26
      • 2015-12-16
      • 1970-01-01
      相关资源
      最近更新 更多