본문 바로가기

운동하는 개발자/Android

Direct local .aar file dependencies are not supported when building an AAR (aar 내에 로컬 aar 포함)

728x90

구글 플레이의 지시에 따라 Target SDK버전을 올렸다.
=> gradle 버전을 올리라고 한다... 올렸다 
=> Java 버전을 올리라고 한다.. 올렸다
=> android studio IDE버전을 올리라고 한다 아놔...

다 올려 줬더니 컴파일 에러가 엄청 뜬다 ^^
(전문 모바일 개발자도 아니고 못해먹겠어요~~ 아아아 왤케 바뀌어)

Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :libaar project caused this error: F:\[].aar

 

우선 이 프로젝트의 구조는 다음과 같다.

lib플젝에서 lib.aar을 생성하고
libEx 플젝에서 lib.aar을 dependencies 하여libEx.aar를 생성한다.
에러는 libEx 플젝에서 발생한 것이다.

implementation files('F:/lib/build/outputs/aar/lib.aar')


이때 파일을 옮기거나 하는 번거로움을 없애기 위해 절대 경로를 입력했다.

에러 내용을 찾아보니 aar내에 로컬 aar을 포함시킬 수 없다, 안전하지 않으니 어디 artifact로 업로드해서 당겨 써라 등등 별의별 내용이 다 나왔었고 해결책은 다음과 같다. 

우선 위 코드를 아래와 같이 변경했다.

implementation name: 'lib', ext: 'aar'

그리고 동일한 build.gradle에 pom.withXml에서 아래와 같이 dependencyNode를 설정해 주었다.

 

publishing {
    publications {

        debugAar(MavenPublication) {
            pom.withXml {
                def dependenciesNode = asNode().appendNode('dependencies')

                def dependencyNode = dependenciesNode.appendNode('dependency')               
                  
                dependencyNode.appendNode('groupId', 'kr.co.blah')
                dependencyNode.appendNode('artifactId', 'lib')
                dependencyNode.appendNode('version', '1.3.3')
            }
        }
        releaseAar(MavenPublication) {
            pom.withXml {         
                def dependenciesNode = asNode().appendNode('dependencies')

                def dependencyNode = dependenciesNode.appendNode('dependency')               
                  
                dependencyNode.appendNode('groupId', 'kr.co.blah')
                dependencyNode.appendNode('artifactId', 'lib')
                dependencyNode.appendNode('version', '1.3.3')
            }
        }
    }
}

이렇게 하고 에러가 사라지고 정상적으로 동작하는 것 확인되었다.

이게 뭐고 왜 되는지는 작성자도 모바일개발자가 아니라서 그냥 추측만 할 뿐..
구글링 해서 이것저것 하다 보니 되었다라고 밖에... 주륵 ㅠ


 

728x90