web-dev-qa-db-ja.com

指定されたアーティファクトには、安全に書き換えられないパッケージ参照「Android.support.v4.content」を持つ文字列リテラルが含まれています。 androidx用

Android studio to 3.4 canaryをアップグレードしましたが、次のエラーが原因で正常にビルドできなくなりました。

The given artifact contains a string literal with a package reference 'Android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.

詳細:

Caused by: Java.lang.RuntimeException: Failed to transform '.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/9.0.0-SNAPSHOT/732f93940c74cf32a7c5ddcc5ef66e53be052352/butterknife-compiler-9.0.0-SNAPSHOT.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'Android.support.v4.content' 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.)

明らかに、Butterknife, androidx and Jetifierと関係がある

誰もこれを修正する方法を知っていますか?

37
Tnaffh

ジェット機からバターナイフをブラックリストに登録してみてください:

gradle.properties file:

Android.jetifier.blacklist = butterknife.*\\.jar

AGPの3.3.0-rc1およびKotlin Gradleプラグインの1.3.0バージョンを使用する必要があります。

buildscript {
    repositories {
        ...
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.3.0-rc01'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.0"
        classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
    }
}

編集:
Butterknife 10.0.0ではAndroidXのサポートが追加されたため、ブラックリストに登録する代わりに更新するだけで十分です。

23
Jorge Gil

Butterkniveの依存関係の最後のバージョンを追加します。変更された場合はここで確認できます( https://github.com/JakeWharton/butterknife )。 androidXをサポートしています。次に、アプリビルドグラドルに移動し、古いバージョンを次のものに置き換えます。

dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}
46
Shid

Androidxの場合、依存関係をバージョン'10 .0.0 'にアップグレードするだけです

dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}

ドキュメントを探してください こちら

20
Rishabh Saxena

ButterKnifeを最新バージョンにアップグレードし、これらをbuild.gradle(app)に追加してください:

Android {
...
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}
6
twenk11k

バターナイフを使用する場合、どのバージョンですか?最新バージョン9.0.0-rc2はandroidxをサポートしています。

UPD:バターナイフの github repo に問題がクローズされています。 一時的な回避策

Android.jetifier.blacklist = butterknife-compilerをgradle.propertiesファイルに追加します。

1

Butterknifeの最新バージョンを使用すると、問題は解決しました。 androidXをサポートするには、> = 9.0.0-rc2(Butterknife Version)を使用します。最新リリースについては、リンクを確認してください- https://github.com/JakeWharton/butterknife/releases

1
Chahat Jain