Данный артефакт содержит строковый литерал со ссылкой на пакет 'android.support.v4.content', который нельзя безопасно переписать. для андроид
Я обновил свою 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
Кто-нибудь знает, как это исправить?
Ответы
Ответ 1
Новый правильный ответ:
Butterknife 10.0.0 добавил поддержку AndroidX.
dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}
Старый ответ для Butterknife & lt; 10.0.0:
Попробуйте добавить в черный список нож для разжигания масла от джетитера:
gradle.properties file:
android.jetifier.blacklist = butterknife.*\\.jar
Вы должны быть в версии 3.3.0-rc1 AGP и версии 1.3.0 плагина Kotlin Gradle:
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'
}
}
Ответ 2
Добавьте последнюю версию зависимости butterknive, которую вы можете проверить здесь, если она изменится (https://github.com/JakeWharton/butterknife). Он поддерживает AndroidX. Затем перейдите к программе сборки вашего приложения и замените старую версию на следующую:
dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}
Ответ 3
Для androidx просто обновите ваши зависимости до версии '10.0.0 '
dependencies {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}
Ищите документацию здесь
Ответ 4
Обновите ButterKnife до последней версии и обязательно добавьте их в свой build.gradle (приложение):
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Ответ 5
Какую версию, если Butterknife вы используете? Последняя версия 9.0.0-rc2 поддерживает androidx.
UPD: Существует закрытая тема на нож для масла GitHub репо. Временное решение
Добавьте android.jetifier.blacklist = butterknife-compiler в ваш файл gradle.properties.
Ответ 6
Использование последней версии Butterknife решило проблему. Используйте> = 9.0.0-rc2 (версия Butterknife) для поддержки AndroidX. Для получения последней версии проверьте ссылку - https://github.com/JakeWharton/butterknife/releases
Ответ 7
Получение этой ошибки после обновления этой зависимости зависимости {
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
}
Error: Static interface methods are only supported starting with Android N (--min-api 24): void butterknife.Unbinder.lambda$static$0()
Ответ 8
Последняя версия
реализация 'com.jakewharton: butterknife: 10.0.0' annotationProcessor 'com.jakewharton: butterknife-compiler: 10.0.0'