Android 梯度密度

Android 梯度密度,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我正在使用带有拆分的gradle生成android APK 以下是我使用的示例: splits { density { enable true reset() include "mdpi", "hdpi" } abi { enable true reset() include "x86", "arm64-v8" } } 根据文档,它应该生成4个APK mdpi-x86、mdpi-arm64-

我正在使用带有拆分的gradle生成android APK

以下是我使用的示例:

splits {
    density {
      enable true
      reset()
      include "mdpi", "hdpi"
    }
    abi {
      enable true
      reset()
      include "x86", "arm64-v8"
    }
}
根据文档,它应该生成4个APK mdpi-x86、mdpi-arm64-v8、hdpi-x86和hpdi-arm64-v8


但是,当我运行gradle脚本时,会生成6个apk,上面的四个和另外两个:x86.apk和arm64-v8.apk。我不知道为什么会产生这些问题,原因是什么。有没有办法不生成这些内容?

当您按密度进行拆分时,Android插件将始终为屏幕密度不受支持的设备生成“额外”APK(至少目前还不支持)

根据他们的意见:

由于基于屏幕密度的每个APK都包含一个标记,该标记对APK支持的屏幕类型具有特定限制,因此即使您发布了多个APK,一些新设备也不会与您的多个APK过滤器匹配。因此,Gradle总是生成一个额外的通用APK,其中包含所有屏幕密度的资源,不包括标记。您应该将此通用APK与每密度APK一起发布,以便为与带有标记的APK不匹配的设备提供备用

在你的例子中,因为你也被ABI分割,你会得到两个“额外的”APK而不是一个