android 4.4/5.1でaarを使用する問題

1887 ワード

Android 6.0でLOCAL_を使用できますSTATIC_JAVA_AAR_LIBRARIES.buildスクリプトは、指定したaarを一時ディレクトリに解凍しclassします.jarとresは対応する変数に追加されます.
LOCAL_STATIC_JAVA_AAR_LIBRARIES := $(strip $(LOCAL_STATIC_JAVA_AAR_LIBRARIES))
    ifdef LOCAL_STATIC_JAVA_AAR_LIBRARIES
    my_full_libs_manifest_deps += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
      $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/classes.jar)
    my_full_libs_manifest_files += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
      $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/AndroidManifest.xml)

    LOCAL_RESOURCE_DIR += $(foreach lib, $(LOCAL_STATIC_JAVA_AAR_LIBRARIES),\
      $(call intermediates-dir-for,JAVA_LIBRARIES,$(lib),,COMMON)/aar/res)
    endif

LOCAL_STATIC_JAVA_AAR_LIBRARIESはAndroid 4.4は存在しないが、上記の手順を参照すればよい.aarを手動で解凍してプロジェクトに追加し、次のような文を使用します.
LOCAL_STATIC_JAVA_LIBRARIES += lib_android_recyclerview

    LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.recyclerview
    LOCAL_RESOURCE_DIR += $(addprefix $(LOCAL_PATH)/, android-recyclerview-v7/res)

    LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += lib_android_recyclerview:android-recyclerview-v7/classes.jar