我正在使用带分叉的gradle生成android。
以下是我使用的例子:
splits {
density {
enable true
reset()
include "mdpi", "hdpi"
}
abi {
enable true
reset()
include "x86", "arm64-v8"
}
}根据文档,它应该生成4个apks mdpi-x86、mdpi-arm64-v8、hdpi-x86和hpdi-arm64-v8。
但是,当我运行gradle脚本时,生成了6个apks,上面的4个以及另外两个: x86.apk和arm64-v8.apk。我不知道为什么会产生这种情况,以及产生这种情况的原因何在。有没有办法不产生这些?
发布于 2018-05-10 21:34:49
当你按密度划分时,Android插件总是会为屏幕密度不受支持的设备生成一个“额外的”APK (至少目前还不支持)。
根据他们的文档
因为每个基于屏幕密度的APK都包含一个标签,对APK所支持的屏幕类型有特定的限制,即使您发布了几个APK,一些新设备也将与您的多个APK过滤器不匹配。因此,Gradle总是生成一个额外的通用APK,它包含用于所有屏幕密度的资产,并且不包括标记。您应该将此通用APK与您的每密度APK一起发布,以便为那些与APK不匹配的设备提供一个退路。
在你的例子中,因为你也被ABI分割,你会得到两个额外的APK而不是一个。
https://stackoverflow.com/questions/50053437
复制相似问题