10

我注意到我的应用在同一设备上显示的布局略有不同,具体取决于我运行的是调试 APK 还是签名的发布 APK。经过多次头疼后,我将问题与设备密度特定的资源值隔离开来。当我在调试模式下运行应用程序时,设备使用来自 value-xxhdpi/ dimens.xml的尺寸,当我运行签名的 APK 时,它使用来自values-xxxhdpi/dimens.xml 的尺寸。有问题的设备是运行 Android 7.0 的三星 Galaxy S7

为了确认这一点,我创建了一个新的空项目,其中只有一个 hello world 字符串。我在values/strings.xmlvalues-xxhdpi/strings.xmlvalues-xxxhdpi/strings.xml中为字符串定义了不同的值。这是结果。

  • 调试 apk 显示 xxhdpi 字符串。按预期工作。
  • 从 android studio 运行发布 apk(通过在 gradle 文件中指定签名配置)显示 xxhdpi 字符串。按预期工作。
  • 通过选择 Build | 生成签名的 apk 生成签名的 APK 并运行它。这次应用程序显示 xxxhdpi 字符串。为什么 ?!

为什么会这样?为什么android在调试模式下选择xxhdpi资源而在签名APK中选择xxxhdpi资源?

4

0 回答 0