web-dev-qa-db-ja.com

android-jetifier:「すべてのアーティファクトを解決できませんでした」;新しいプロジェクトで「アーティファクトの変換に失敗しました」

構築しようとしている比較的新しいプロジェクトがあります。 Gradleは正常に同期しますが、ビルドしようとすると、次のようなエラーが発生します。

Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
   > Failed to transform artifact 'common.jar (com.Android.tools:common:26.4.0)' to match attributes {artifactType=Android-classes, org.gradle.usage=Java-runtime-jars}.
      > Execution failed for JetifyTransform: C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools\common\26.4.0\539939e284fba9fe343b890a6e21c9333767c886\common-26.4.0.jar.
         > Failed to transform 'C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools\common\26.4.0\539939e284fba9fe343b890a6e21c9333767c886\common-26.4.0.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'Android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)
   > Failed to transform artifact 'bundletool.jar (com.Android.tools.build:bundletool:0.7.2)' to match attributes {artifactType=Android-classes, org.gradle.usage=Java-runtime-jars}.
      > Execution failed for JetifyTransform: C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools.build\bundletool\0.7.2\31f71b66edcbe41de0268e14c961a7799a03d42a\bundletool-0.7.2.jar.
         > Failed to transform 'C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools.build\bundletool\0.7.2\31f71b66edcbe41de0268e14c961a7799a03d42a\bundletool-0.7.2.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'Android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)

私はこのプロジェクトを1週間前に開始し、Android Studioの安定ブランチを使用し、Gradleプラグイン3.5を使用しています。つまり、これを修正する方法はありますか?

私が試したこと:

  • Gradle.propertiesでJetifierを無効にすると、古いデータバインディングと新しいデータバインディングの依存関係に関するエラーが発生しました。
  • Gradleプラグイン3.4.2にロールバックすると、上記と同じエラーが発生しました。
  • Gradle.propertiesにAndroid.jetifier.blacklist = passを追加すると、上記と同じエラーが発生しました。
  • Gradle.propertiesにAndroid.databinding.enableV2=trueを追加すると、上記と同じエラーが発生しました。
  • 「= Migrate to AndroidX」リファクタリングをAndroid Studioで実行すると、実際にはこの奇妙なリファクタリングプレビューが残りました: Why am I refactoring the library that I'm trying to refactor to?
  • アプリレベルのbuild.gradleからapply plugin: 'kotlin-kapt'を削除すると、上記と同じエラーが発生しました。
  • クリーニングと再構築が機能しません。
  • 無効化と再起動は機能しません。

EDIT 1:Gradleの依存関係、好奇心旺盛な方のために...ここでは特に奇妙なものを使用しているとは思いません。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //Kotlin stuff
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-Android:1.3.0"
    //Test tools
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    //UI
    implementation 'com.google.Android.material:material:1.1.0-alpha10'
    implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'androidx.activity:activity:1.1.0-alpha03'
    //Lifecycle
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0-alpha04'
    //Moshi for serialization
    implementation 'com.squareup.moshi:moshi:1.8.0'
    implementation 'com.squareup.moshi:moshi-kotlin:1.8.0'
    //Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.6.1'
    implementation 'com.squareup.retrofit2:converter-moshi:2.6.1'
    //Glide
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.9.0'
    //Navigation
    implementation 'androidx.navigation:navigation-fragment-ktx:2.1.0'
    implementation 'androidx.navigation:navigation-common-ktx:2.1.0'
    implementation 'androidx.navigation:navigation-ui-ktx:2.1.0'
    implementation "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0"
    //Diff utils
    implementation group: 'io.github.Java-diff-utils', name: 'Java-diff-utils', version: '4.0'
    //Timber for logging
    implementation 'com.jakewharton.timber:timber:4.7.1'
}

編集2:Gradleの依存関係を新しい空のプロジェクトにコピーして貼り付けたところ、同じエラーが発生しました。これらの依存関係の1つである可能性がありますか?

編集3:build.gradle(Moshi、Retrofit、Timber、Glide)からさまざまなライブラリをコメントアウトしても効果がありませんでした。だから、おそらくバグレポートをグーグルに提出するべきだ。それまで、回避策は何ですか?

編集4:コメントからの提案で、.gradleフォルダーを削除して、以前のバージョンのマテリアルデザインライブラリにロールバックしてみました。どちらも効果はありませんでしたが、後者はビルドログに興味深いものを追加しました。

> Transform artifact kotlin-build-common.jar (org.jetbrains.kotlin:kotlin-build-common:1.3.20) with DexingNoClasspathTransform
AGPBI: {"kind":"error","text":"Invoke-customs are only supported starting with Android O (--min-api 26)","sources":[{}],"tool":"D8"}
3
MowDownJoe

私の場合、Android studioを更新しました。自動的にGradleバージョンが更新され、ビルドが失敗しました。古いバージョンを返すと問題が解決しました。

0
vinicius gati

Invoke-customsは、Android O(--min-api 26)以降でのみサポートされています。

つまり、少なくとも次のものが必要です。

compileSdkVersion 26
targetSdkVersion 26
0
Martin Zeitler