1

我从 Git 中提取了一个用 Flutter 制作的团队项目,出于某种原因,在构建应用程序时(在 Android Studio 中按下绿色箭头并运行 main.dart),我收到以下消息:

What went wrong:
Execution failed for task ':biometric_storage:kaptGenerateStubsDebugKotlin'.
> Could not resolve all files for configuration ':biometric_storage:kapt'.
   > Failed to transform moshi-1.13.0.jar (com.squareup.moshi:moshi:1.13.0) to match attributes {artifactType=processed-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=8, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}.
      > Execution failed for JetifyTransform: C:\Users\UserName\.gradle\caches\modules-2\files-2.1\com.squareup.moshi\moshi\1.13.0\da685586facab9eb5c4fb630ce248be14e7da21b\moshi-1.13.0.jar.
         > Failed to transform 'C:\Users\UserName\.gradle\caches\modules-2\files-2.1\com.squareup.moshi\moshi\1.13.0\da685586facab9eb5c4fb630ce248be14e7da21b\moshi-1.13.0.jar' using Jetifier. Reason: Unsupported class file major version 60. (Run with --stacktrace for more details.)

我的 build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.0'
        classpath 'com.google.gms:google-services:4.3.5'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext.kotlin_version = '1.4.31'

我的 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

其他可能相关的信息

Fluter Android Studio plugin 63.2.1
Dart Android Studio plugin 203.8452
Dart 2.15.1
Flutter 2.8.1

我的团队中没有人收到此消息,因此我怀疑这与某些本地配置差异有关,或者我可能有某些程序的不同版本。另外,我无法更新 Gradle,因为这会导致一些其他问题。编辑:清除所有队友的缓存后,出现此错误。

4

1 回答 1

0

注意:我是问这个问题的人。以下解决方案是独立的,您可以只尝试其中一种,也可以将它们组合起来。选择一个看起来更简单的,如果可行,那么就不需要其他的了。

解决方案 1

尝试忽略导致问题的一个 .jar。根据您使用的 Android Gradle 插件版本的版本使用android.jetifier.blacklistandroid.jetifier.ignorelist链接到相关问题)(要检查您使用的版本,请转到您的 build.gradle 并检查com.android.tools.build:gradle:X.Y.Z)。如果您在 7.0.0 之前android.jetifier.blacklist和之后使用任何东西android.jetifier.ignorelist

我使用 3.6.0,所以对我来说android.jetifier.blacklist有效,android.jetifier.ignorelist但无效。

解决方案 2

尝试将 gradle 和 android gradle 插件更新到版本 7。我没有尝试过,我不能因为这不是我的个人项目,但如果你可以的话。为什么我认为升级会有所帮助?好吧,这个github问题谈到了这一点。

解决方案 3

以下解决方案没有任何意义(至少对我来说,如果有人可以解释为什么这可以解决问题,请这样做),但由于某些奇怪的原因它可以工作。

我添加了一个名为bye-bye-jetifier的新库,因为我的想法是我应该关闭 jetifier。在关闭它之前,我必须检查我是否有任何使用过时代码(不是 AndroidX 的代码)的依赖项,因此我决定安装 bye-byte-jetifier。安装后我的 build.gradle 看起来像这样。使用以下配置运行后,问题就消失了。

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()   // <--------- I added this
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.0'
        classpath 'com.google.gms:google-services:4.3.5'
        classpath 'com.dipien:bye-bye-jetifier:1.2.1' // <--------- I added this
    }
}
allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext.kotlin_version = '1.4.31'

请注意,我什至没有应用该插件(就像 bye-bye-jetifier上的官方指南所说),这使得这个解决方案更加混乱。

于 2022-01-27T12:34:44.647 回答