Butterknife 해결 8.8.1 다중 모듈의 종속 오류
먼저 ButterKnife를 다음과 같이 구성합니다. 1.Project에서 build.gradle에 다음 코드를 추가합니다.
classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
2.app에서build.gradle에 다음 코드를 추가합니다.apply plugin: 'com.jakewharton.butterknife'( )
3. 앱에서build.gradle의 dependencies에 다음을 추가합니다.compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1 '
4. Sync Now를 클릭하면 다음과 같은 프롬프트가 나타납니다.Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'.
Possible causes for this unexpected error include:- Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)
- The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
해결 방법:
1. 2단계에 추가된 다음 코드를 주석 또는 삭제합니다.
//apply plugin: 'com.jakewharton.butterknife'
2.Sync Now를 다시 클릭하면 문제가 해결되었음을 알 수 있습니다.--------------------------------------------나는 분리선 --------------------------------------------------------------------------------------------------------------------------------------------------------------
이상과 같이 문제를 해결할 수 없다면 마침 저도 새로운 문제에 부딪혔습니다. 모듈에서 butterknife를 사용할 때 Attribute value must be constant을 알려 줍니다. 아래 그림과 같습니다.
어떻게 해결할까요?인터넷에서 한 번 찾아보았는데 셀러리 Ice의 글을 참고했습니다. 출처: 모듈화 개발 버터크니프가 library에서 사용하는 구덩이를 해결합니다. (안에 주의사항이 있으니 추천합니다!)
포인트!!최종 솔루션:
ps:그동안 문제 해결 못했던 거 다시 시작하자. 분리선 이전의 거 잊어버리자!
1. 루트 디렉터리에 있는build.gradle의 dependencies는 다음과 같이 추가됩니다.
여기 8, 4.0 버전입니다!!
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0' //butterknife
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
2. 분리선 이전 2단계에서 삭제되거나 주석된 apply plugin:'com.jakewharton.butterknife ', app에서는 필요 없습니다. 모듈에build를 추가합니다.gradle 상단:3. 마지막으로, 나는 모듈에 있는build이다.gradle의 dependencies에 다음을 추가합니다.
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
(그림의 쓰기 방법은 구분선을 참조하기 전에 3단계에서 제시한 문장을 참조하면 된다)4. 그리고 Module에서 R 대신 R2를 사용하여findViewById를 사용하면 됩니다.
이로써 이전의 문제는 모두 해결되었다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.