Butterknife 해결 8.8.1 다중 모듈의 종속 오류

3071 단어
작성자: Summermay 출처: CSDN 텍스트:https://blog.csdn.net/Summer_may/article/details/80432849판권 성명: 본고는 블로거의 오리지널 문장으로 옮겨 싣기 위해 블로거 링크를 동봉합니다
먼저 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:

해결 방법:


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를 사용하면 됩니다.
이로써 이전의 문제는 모두 해결되었다!

좋은 웹페이지 즐겨찾기