제공된 아티팩트에 안전하게 다시 작성할 수없는 패키지 참조 ‘android.support.v4.content’가있는 문자열 리터럴이 포함되어 있습니다. androidx 용 canary다음 오류로 인해 더

업그레이드했는데 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에서 버터 나이프를 블랙리스트에 추가해보세요.

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

답변

버터 나이프 종속성의 마지막 버전을 추가하면 변경된 경우 여기에서 확인할 수 있습니다 ( https://github.com/JakeWharton/butterknife ). androidX를 지원합니다. 그런 다음 앱 빌드 graddle로 이동하여 이전 버전을 다음으로 바꿉니다.

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

답변

androidx의 경우 종속성을 ’10 .0.0 ‘버전으로 업그레이드하기 만하면됩니다.

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

여기 에서 문서 찾기


답변

ButterKnife를 최신 버전으로 업그레이드하고 build.gradle (app)에 다음을 추가하세요.

android {
...
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

답변

내 프로젝트는 버터 나이프를 사용하지 않지만 “주어진 아티팩트에 안전하게 다시 작성할 수없는 패키지 참조 ‘android.support.v4.widget’이있는 문자열 리터럴이 포함되어 있습니다. 주석 프로세서와 같은 리플렉션을 사용하는 라이브러리는 다음을 수행해야합니다. androidx에 대한 지원을 추가하려면 수동으로 업데이트해야합니다. “이 문제를 해결하기 위해 수행 한 작업 : 소포 버전 업데이트

gradle 빌드 파일

바꾸다:

annotationProcessor 'org.parceler:parceler:1.1.6'
implementation 'org.parceler:parceler-api:1.1.6'

와:

  annotationProcessor 'org.parceler:parceler:1.1.13'
  implementation 'org.parceler:parceler-api:1.1.13'



답변

버터 나이프를 사용한다면 어떤 버전입니까? 최신 버전 9.0.0-rc2는 androidx를 지원합니다.

UPD : butterknife의 github repo 에 닫힌 문제가 있습니다 . 임시 해결 방법

gradle.properties 파일에 android.jetifier.blacklist = butterknife-compiler를 추가합니다.


답변

최신 버전의 Butterknife를 사용하여 문제가 해결되었습니다. androidX를 지원하려면> = 9.0.0-rc2 (Butterknife 버전)를 사용하세요. 최신 릴리스는 링크를 확인하십시오-https: //github.com/JakeWharton/butterknife/releases