小编Y.Y*_*ina的帖子

如何使用Android插件为gradle 2.3.1在Android Studio中找到打包在AAR中的jni库?

我的项目必须使用 AAR 作为依赖项。AAR 打包了一些类和一个 jni 库 (eglibdemo.so)。jni 库在我的项目中用作 LOCAL_SHARED_LIBRARIES。

对于gradle 2.2.3的Android插件,我采取以下两种方式:

1.手动解压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)
Run Code Online (Sandbox Code Playgroud)

2.AAR 在 build/intermediate 中未打包。所以我在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)
Run Code Online (Sandbox Code Playgroud)

但是对于gradle 2.3.1的Android插件,规则改变了吗?

构建缓存:存储 Android 插件在构建项目时生成的某些输出(例如未打包的 AAR 和 pre-dexed 远程依赖项)。

我指定了一个相对于 gradle.properties 文件的路径。

 android.buildCacheDir=buildcache
Run Code Online (Sandbox Code Playgroud)

它有效,我可以看到缓存,但我找不到 libdemo.so 直接构建缓存:

构建缓存

我现在不能使用 WAY 2。有没有更方便的方法来链接jni库?

android

5
推荐指数
1
解决办法
1223
查看次数

标签 统计

android ×1