응용 프로그램 (Android Studio에서 개발 됨)에서 종속 항목을 선택하지 않은 경우 AAR
을 라이브러리로 사용합니다. 이 AOSP
트리 에서이 응용 프로그램을 빌드해야합니다.aar 지원. AOSP 빌드
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= <aar alias>
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := <aar alias>:libs/<lib file>.aar
include $(BUILD_MULTI_PREBUILT)
빌드가 성공적으로 완료되지만 문제가 AAR
는 'libs와'디렉토리에서 JAR 파일의 수를 포함한다는 것입니다 : 그래서 Android.mk를 만들었습니다. 그리고 이러한 JAR 파일은 빌드에 포함되지 않으므로 NoClassDefFoundError
으로 응용 프로그램이 충돌하는 것으로 보입니다.
AOSP가 AAR
의 전체 지원을 놓치고 있습니까? 또는 나는 무엇인가 놓치 느냐? 감사. 나는 안드로이드 6.0.1을 사용한다.
이것은 도움이되지 않습니다. --extra-packages 동작을 확인하기 위해 새로운 mylib.jar 파일을 가비지 컨텐츠로 생성하여 AAR의 libs 폴더에 넣었습니다. libs 콘텐츠가 빌드에 포함되면 잘못된 .jar 파일로 인해 빌드가 실패합니다. 그러나 빌드가 성공적으로 완료되었습니다. AAR 파일의 AndroidManifest.xml에 정의 된대로 패키지 이름을 전달합니다. 옳은? –
나는 적절한 플래그를 만드는 동안 aapt 플래그를 포함하는 jar 파일을 포함한다고 말하지 않았다. 내 의견을 확인해주십시오 : "당신이하는 일은 정확하고, aar에 포함 된 jar 파일도 여기에 포함될 것입니다." aapt 플래그가 포함 된 적절한 빌드를 만드십시오. 그래도 작동하지 않으면 mk 파일을 여기에 공유하십시오. – prateekj
물론 AAR의이 리소스가 빌드에 포함되어 있지 않으면 LOCAL_AAPT_FLAGS + = --extra-packages your.package.name을 추가했습니다. 물론 aar의 classes.jar 파일이 빌드에 포함되어 있습니다. 문제는 AAR의 libs/*. jar 파일이 자동으로 빌드에 포함되지 않는다는 것입니다. –