Android进阶-AndroidStudio兼容自定义和第三方库编译

我们知道当我们编译自己的共享库时,会首先将共享库清除,如果此时我们我们有第三方库也会跟着被清除,这个时候我们是不会想清除第三方库的,这个时候我们就需要将自定义库和第三方库的加载路径设置为不同的路径,那么我们现在看看如何设置吧

设置第三方加载库和自定义库路径

1.1 设置自定义库加载路径

CMakeList.txt:

......
#此目录为CMakeList.txt 的父目录下的jniLibs目录
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/jniLibs/${ANDROID_ABI})
......

1.2 设置第三方库加载路径

在模块的build.gradle中设置第三方库的加载路径:
在gradle plugln 4.0开始,无需指定第三库加载路径,gradle自动会帮助我们寻找,否则会出现以下错误:

Execution failed for task ‘:app:mergeDebugNativeLibs’.
A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
More than one file was found with OS independent path ‘lib/arm64-v8a/lib***.so’. If you are using jniLibs and CMake IMPORTED targets, see https://developer.android.com/studio/preview/features#automatic_packaging_of_prebuilt_dependencies_used_by_cmake

google给出的官方说明:
在这里插入图片描述
build.gradle:

......
android {
......
	    defaultConfig {
	    ......
	    	ndk {
           		// Specifies the ABI configurations of your native
            	// libraries Gradle should build and package with your APK.
            	abiFilters 'armeabi-v7a','arm64-v8a'
        	}
        	sourceSets.main.jniLibs.srcDirs = ['libs']
	    ......
		}
......
}
......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有头发的猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值