我的項目必須使用AAR作爲依賴關係。 AAR打包了一些類和一個jni庫(例如libdemo.so)。 jni庫在我的項目中用作LOCAL_SHARED_LIBRARIES。如何在Android Studio中使用Android插件爲Gradle 2.3.1找到打包在AAR中的jni庫?
有了Android插件gradle這個2.2.3,我採取以下兩種方式:手動
1.Unpackaged AAR並把libdemo.so在與Android.mk的目錄:
###########################prebuild libdemo.so##############################
include $(CLEAR_VARS)
LOCAL_MODULE := libdemo LOCAL_SRC_FILES := libdemo.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) include
$(PREBUILT_SHARED_LIBRARY)
2.AAR在build/intermideate中未打包。所以我設置的路徑Android.mk到libdemo.so:
###########################prebuild libdemo.so##############################
include $(CLEAR_VARS)
LOCAL_MODULE := libdemo
AAR_LIB_PATH = $(LOCAL_PATH)/../../../build/intermediates/exploded-aar/vm/jni/armeabi
LOCAL_SRC_FILES := $(AAR_LIB_PATH)/libdemo.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILT_SHARED_LIBRARY)
但對於Android插件的gradle爲2.3.1,規則改變:
構建緩存:存儲某些輸出的在構建項目時,Android插件會生成 (例如,未打包的AAR和預定義的遠程依賴項 )。
我指定了一個相對於gradle.properties文件的路徑。
android.buildCacheDir=buildcache
它的工作,我可以看到高速緩存,但我不能libdemo.so直接buildcache發現:
我不能使用的方式2現在。 有沒有更方便的方法來鏈接jni庫?