1. ホーム
  2. android

[解決済み] 指定されたアーティファクトには、安全に書き換えることができないパッケージ参照 'android.support.v4.content' を持つ文字列リテラルが含まれています。

2022-08-17 19:09:16

質問

アップグレードした 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

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

どのように解決するのですか?

新しい正解です。

Butterknife 10.0.0では、AndroidXをサポートしました。

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


Butterknife < 10.0.0に対する古い回答です。

jetifierからbutterknifeをブラックリスト化してみてください。

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'
    }
}