2017-09-06 3 views
0

.aar 파일을 내보내는 Android 모듈이 있습니다. Android Studio Wizard에서이 .aar 파일을 가져 왔지만 프로젝트가 컴파일되었지만 런타임에 "java.lang.NoClassDefFoundError"로 충돌합니다. 디버거를 사용하여 검사했지만 Class.forName ("retrofit2.Retrofit") .. 찾을 수 없습니다.Android 라이브러리를 .aar 형식으로 내보내고 Google Gradle 종속성을 유지하려면 어떻게해야합니까?

.aar &을 압축 해제 한 후 classes.jar을 확인한 후 패키지가 보이지만 build.gradle (예 : Okhttp, Retrofit, Gson ..)에서 참조했던 라이브러리가 패키지에 포함되지 않았 음을 분명히 알 수 있습니다.

내가 원하는 것은 build.gradle 의존성을 유지하는 방법입니다. 가능하다면 .aar에 포장하는 것이 더 좋을 것입니다. 그렇다면 옵션은 무엇입니까? 클라이언트가 내 종속성을 자신의 gradle에 추가하도록 강요합니까?

추가 정보 : 나는 그라디언트 의존성 만 있고 병은 없습니다.

답변

1

아티팩트 저장소를 통해 AAR을 배포하십시오. 이슈 저장소 (예 : POM 파일)의 메타 데이터에는 전환 의존성에 대한 정보가 포함됩니다. 또한 AAR의 사용자는 AAR의 버전에 대한 정보를 얻을 수 있으므로 AAR 사용자는 자신이 사용하는 버전에 대한 명확한 정보를 얻을 수 있습니다. 지원 라이브러리, Retrofit 등

+1

항상 깨끗하고 깔끔하게;) Artifactory에 대한 자세한 내용은 https://jeroenmols.com/에서 추가 할 수 있습니다. blog/2015/08/06/artifactory 그리고 pom의 의존성을 publish gradle 태스크에 추가하는 것을 잊지 마십시오. 표준 publish 태스크에는 포함되어 있지 않습니다. – w00ly