如何从 Android App Bundle 中排除 ABI?
How do I exclude ABI from Android App Bundle?
我知道在 Gradle 中生成拆分时有一个选项可以排除 ABI,如下所示:
android {
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 and x86_64.
// Resets the list of ABIs that Gradle should create APKs for to none.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "x86", "x86_64"
}
}
}
这里是 official reference to splits 配置
现在建议在将您的应用程序发布到 Play 商店时使用应用程序包,我没有看到任何选项可以通过使用 Gradle 或 Play 商店发布控制台从该包中排除 ABI。
到目前为止我发现的唯一线索是您可以 enable/disable 一个特定的拆分变体。例如,这里是如何根据 documentation:
完全禁用 ABI 包拆分
android {
// When building Android App Bundles, the splits block is ignored.
splits {...}
// Instead, use the bundle block to control which types of configuration APKs
// you want your app bundle to support.
bundle {
abi {
// This property is set to true by default.
enableSplit = true
}
}
}
但是没有提及如何 disable/enable 特定的 ABI 集。
我已经 abiFilters
指定排除不支持的 NDK,但看起来它对 App Bundle 没有影响。
更新: 我假设 abiFilters
正在指定要从 App Bundle 中排除的 ABI,但恰恰相反,它们的目的是列出要包含的 ABI。澄清之后,一切似乎都正常工作。
abiFilters
是要走的路。指定要包含的 ABI 列表,其他的将被排除。
您不需要 Android 应用程序包的 "splits" 块:它被忽略了。
如果这对您不起作用,那么您能否提供带有 abiFilters
集的 Gradle 配置,并说明您如何确定 App Bundle 中存在的 ABI?
我知道在 Gradle 中生成拆分时有一个选项可以排除 ABI,如下所示:
android {
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 and x86_64.
// Resets the list of ABIs that Gradle should create APKs for to none.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "x86", "x86_64"
}
}
}
这里是 official reference to splits 配置
现在建议在将您的应用程序发布到 Play 商店时使用应用程序包,我没有看到任何选项可以通过使用 Gradle 或 Play 商店发布控制台从该包中排除 ABI。
到目前为止我发现的唯一线索是您可以 enable/disable 一个特定的拆分变体。例如,这里是如何根据 documentation:
完全禁用 ABI 包拆分android {
// When building Android App Bundles, the splits block is ignored.
splits {...}
// Instead, use the bundle block to control which types of configuration APKs
// you want your app bundle to support.
bundle {
abi {
// This property is set to true by default.
enableSplit = true
}
}
}
但是没有提及如何 disable/enable 特定的 ABI 集。
我已经 abiFilters
指定排除不支持的 NDK,但看起来它对 App Bundle 没有影响。
更新: 我假设 abiFilters
正在指定要从 App Bundle 中排除的 ABI,但恰恰相反,它们的目的是列出要包含的 ABI。澄清之后,一切似乎都正常工作。
abiFilters
是要走的路。指定要包含的 ABI 列表,其他的将被排除。
您不需要 Android 应用程序包的 "splits" 块:它被忽略了。
如果这对您不起作用,那么您能否提供带有 abiFilters
集的 Gradle 配置,并说明您如何确定 App Bundle 中存在的 ABI?