2016-07-05 3 views
0

Joda Time 클래스에 의존하는 유틸리티 메소드가 포함 된 Android Studio에서 라이브러리 (aar)를 만들었습니다. 내 Gradle을 파일에jcenter의 종속성을 aar 라이브러리로 컴파일합니까?

컴파일 'joda-시간 : joda-시간 : 2.9.4'코드의 다음 줄 jcenter에서 종속성을 사용하고

그때 개인 받는다는 저장소에 내 라이브러리 추가 새로운 Android 프로젝트를 만들고이 라이브러리에서 내 라이브러리를 추가했습니다.

나는 다음과 같은 오류가 새 프로젝트에서 내 라이브러리의 방법을 사용하려고하면 : -

java.lang.NoClassDefFoundError가 : org.joda.time.DateTime

나는 돌아 가지 시도 jcenter를 통해 joda 시간을 포함하는 대신 jar 파일을 직접 'libs'폴더에 추가하고 이번에는 새 프로젝트에서 메소드를 시도 할 때 위의 오류가 발생하지 않았습니다.

jcenter에서 포함 된 종속성이 실제로 aar 파일로 컴파일되지 않는다는 의미입니까? 그렇게 할 방법이 있습니까?

답변

0

AAR 파일에는 컴파일 된 dex 코드, 매니페스트 (부분) 및 라이브러리에 대한 리소스 만 포함됩니다. joda-time 용 jar 파일을 프로젝트에 복사하면 AAR에 내장됩니다. gradle 종속성을 사용할 때, gradle (따라서 Android Studio)은 AAR을 빌드하기 위해 joda-time 라이브러리를 해결하는 방법을 알고 있지만 그게 전부입니다. AAR이 jcenter에 게시되고 있기 때문에 joda 시간을 종속성으로 나열하는 AAR에 대한 maven 매니페스트가 있어야합니다. 그런 다음 프로젝트는 종속성으로 라이브러리를 나열 할 수있게되고 joda-time에 대한 의존성은 grable (해당 지원을 통해)에 의해 해결됩니다.

+0

이것은 매우 감사드립니다. 나는 maven-publish를 사용하고 있었고 .aar artifact를 게시하고있었습니다. 나는 이것에 의존성을 추가했고 효과가 있었다. – omelette

관련 문제