我正在为四个架构x86,x86_64,armeabi-v7a和arm64-v8a编译拆分apk。该应用程序运行良好,并且可以在大多数设备上加载本机库。但是在某些设备上,发生错误,无法在armv8文件夹或arm文件夹中找到mylibrary.so.。这是我的代码,用于生成拆分的apk和生成不满意的链接错误
splits {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
// By default all ABIs are included, so use reset() and include to specify that we only
// want APKs for x86, armeabi-v7a, and mips.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"
// Specifies that we want to also generate a universal APK that includes all ABIs.
universalApk false
}
}
def abiCodes = ['x86':0, 'x86_64':1, 'armeabi-v7a':2, 'arm64-v8a':3]
android.applicationVariants.all { variant ->
// Assigns a different version code for each output APK.
variant.outputs.each {
output ->
def abiName = output.getFilter(OutputFile.ABI)
output.versionCodeOverride = abiCodes.get(abiName, 0) + variant.versionCode
}
}
当我分析apk时,成功在arm64-v8a apk中获得了所需的本机库 在libs文件夹和所有其他apk的libs文件夹中。