首页 > 解决方案 > R8:无法约束类型:@Nullable androidx.transition.ViewGroupUtilsApi14 {} 用于值:v3 通过约束:INT

问题描述

我收到错误R8: Cannot constrain type: @Nullable androidx.transition.ViewGroupUtilsApi14 {} for value: v3 by constraint: INT当我尝试创建 Android App 的发布版本时,此错误是由 Android R8 引起的。失败的任务是:app:transformClassesAndResourcesWithR8ForRelease并且错误消息没有提供足够的信息。下面是我完整的 gradle 配置。

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'

android {
    lintOptions{
        checkReleaseBuilds false
        abortOnError false
    }
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    dexOptions {
        javaMaxHeapSize "4G"
    }
    defaultConfig {
        applicationId "com.sample.app"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        ndk {
            moduleName "Lame"
            ldLibs "log"
        }
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        android {
            compileOptions {
                sourceCompatibility JavaVersion.VERSION_1_8
                targetCompatibility JavaVersion.VERSION_1_8
            }
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar, *.so'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.firebase:firebase-auth:19.1.0'
    implementation 'com.google.firebase:firebase-storage:19.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.firebase:firebase-database:19.1.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.annotation:annotation:1.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'com.squareup.picasso:picasso:2.5.0'
}

如果我禁用minifyEnabled属性,则 apk 会成功生成。由于 R8 是 Android 的新功能,我只想包含它来混淆和缩减资源。我怎样才能找到这个问题的根本原因?以前有人遇到过这个问题吗?

此外,java.lang.NegativeArraySizeException当我运行gradlew app:transformClassesAndResourcesWithR8ForRelease --stacktrace命令时,我也会得到。以下是上述命令的完整堆栈跟踪。

  • 例外是:org.gradle.api.tasks.TaskExecutionException:任务':app:transformClassesAndResourcesWithR8ForRelease'的执行失败。在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:151) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:148) 在 org .gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:141) 在 org.gradle.api.internal.tasks .execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:75) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62) 在 org.

标签: androidandroid-studiogradleandroid-gradle-plugin

解决方案


推荐阅读