1

Flutter で作成されたチームのプロジェクトを Git から取得しましたが、何らかの理由でアプリをビルドするときに (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 つだけを試すことも、組み合わせることもできます。よりシンプルに見えるものを選択し、それが機能する場合は、他のものは必要ありません.

解決策 1

問題の原因となっている .jar を無視してみてください。使用している Android Gradle プラグインのバージョンに応じて、android.jetifier.blacklist またはandroid.jetifier.ignorelist (関連する質問へのリンクcom.android.tools.build:gradle:X.Y.Z) を使用します (使用しているバージョンを確認するには、build.gradle に移動して確認します)。android.jetifier.blacklist7.0.0 の使用前と使用後の何かを使用する場合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 に答える