Android Studio Gradle NDK buildFlavor 忽略处理器类型
Android Studio Gradle NDK buildFlavor ignoring processor type
我在使用 gradle 和百度推送库时遇到一些问题。
在我们的应用中,我们针对不同的处理器类型使用 buildFlavor,
productFlavors {
arm {
versionCode Integer.parseInt("8" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi"
}
}
x86 {
versionCode Integer.parseInt("6" + defaultConfig.versionCode)
ndk {
abiFilter "x86"
}
}
mips {
versionCode Integer.parseInt("4" + defaultConfig.versionCode)
ndk {
abiFilter "mips"
}
}
armv7 {
versionCode Integer.parseInt("2" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi"
}
}
}
}
但百度推送库仅提供 arm 和 mips NDK 支持库,x86 不需要任何 .so 来工作,当我们尝试使用 x86 构建应用程序时,出现错误 [INSTALL_FAILED_NO_MATCHING_ABIS]。
知道吗,我们如何忽略此处理器类型的 ndk 库?
参考百度推送库文档:"all x86 devices support arm so"什么意思?
现在您正在将更高版本的代码设置为 armeabi 版本。如果这样做,armeabi APK 甚至会分发到 x86 设备,因为 x86 设备也支持 运行ning armeabi/armeabi-v7a APK。您应该为您的 x86 APK 提供最高版本代码。
无论如何,您可以 运行 在 x86 设备上部署库,但不能混合使用。这意味着如果您无法获得所有库的 x86 版本,您应该遗憾地放弃它并仅发布 ARM 版本。
您还可以告诉您的库供应商他们应该发布其库的 x86 版本,因为不这样做会阻止您正确构建 APK 的 x86 版本。
我在使用 gradle 和百度推送库时遇到一些问题。
在我们的应用中,我们针对不同的处理器类型使用 buildFlavor,
productFlavors {
arm {
versionCode Integer.parseInt("8" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi"
}
}
x86 {
versionCode Integer.parseInt("6" + defaultConfig.versionCode)
ndk {
abiFilter "x86"
}
}
mips {
versionCode Integer.parseInt("4" + defaultConfig.versionCode)
ndk {
abiFilter "mips"
}
}
armv7 {
versionCode Integer.parseInt("2" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi"
}
}
}
}
但百度推送库仅提供 arm 和 mips NDK 支持库,x86 不需要任何 .so 来工作,当我们尝试使用 x86 构建应用程序时,出现错误 [INSTALL_FAILED_NO_MATCHING_ABIS]。
知道吗,我们如何忽略此处理器类型的 ndk 库?
参考百度推送库文档:"all x86 devices support arm so"什么意思?
现在您正在将更高版本的代码设置为 armeabi 版本。如果这样做,armeabi APK 甚至会分发到 x86 设备,因为 x86 设备也支持 运行ning armeabi/armeabi-v7a APK。您应该为您的 x86 APK 提供最高版本代码。
无论如何,您可以 运行 在 x86 设备上部署库,但不能混合使用。这意味着如果您无法获得所有库的 x86 版本,您应该遗憾地放弃它并仅发布 ARM 版本。
您还可以告诉您的库供应商他们应该发布其库的 x86 版本,因为不这样做会阻止您正确构建 APK 的 x86 版本。