【问题标题】:Android Density Split Not WorkingAndroid 密度拆分不起作用
【发布时间】:2017-08-24 14:26:59
【问题描述】:

我的应用包含大量图片,因此目前签名的 APK 大于 100mb(大约 115mb),即使有优化的图片也是如此。我想使用密度拆分来生成特定于密度的构建。我目前在我的 gradle 文件中包含以下内容,但生成的 APK 大小相同,并且仍然包含所有资源。

// Configures multiple APKs based on screen density.
density {

    // Configures multiple APKs based on screen density.
    enable true

    // Specifies a list of compatible screen size settings for the manifest.
    compatibleScreens 'small', 'normal', 'large', 'xlarge'
}

我注意到其他人遇到了同样的问题,但没有人回复。我想评论帖子但我的声誉不够高:APK split by density still contains all resources

有人有什么想法吗?

下面的编辑是比较 hdpi 发布版本和 mdpi 发布版本的两个屏幕截图。您可以清楚地看到它们的大小相同:

【问题讨论】:

  • 您在使用 Flavors 吗?我对我的一些应用程序进行了一些测试,其中一些是我使用的味道不起作用,但在其他方面没有任何味道它可以工作
  • 不,我没有在这个应用程序上使用风味
  • 你能发布两个生成的apk比较的打印屏幕吗?使用分析 apk 功能并将其与另一个比较?
  • @NunoGomes 我附上了两张截图。分析 APK 表明它们具有完全相同的内容,每个构建都具有所有密度资源。
  • 我最终使用 Android Studio 3 Beta 进行了密度拆分。我为使用 Android Studio 3 创建了一个新的 git 分支。我认为潜在的问题可能与我在 Android Studio 2 中使用的 retrolambda 插件有关,以便使用 Java 8,但我不确定。

标签: android gradle apk


【解决方案1】:

我终于解决了这个问题

就我而言,我必须删除应用程序 gradle 脚本中 defaultConfig 块上的 resConfigs

defaultConfig {
    resConfigs "en", "id" //remove this line
    //your other implementation
}

我不知道为什么,但似乎不知何故 resConfigs break apk split

【讨论】:

    【解决方案2】:
    density {
      enable true
      reset()
      include "mdpi", "hdpi", "xhdpi", "xxhdpi",......
    }
    

    添加 reset() 并包含在您的代码中

    【讨论】:

      【解决方案3】:

      我不确定这是否是 Android Studio 2 的错误,但我让它与 Android Studio 3 一起工作。

      最初我认为这可能是 retrolambda 插件的问题,但我并不肯定。

      【讨论】:

        猜你喜欢
        • 2023-03-13
        • 2014-07-18
        • 2014-01-07
        • 1970-01-01
        • 1970-01-01
        • 2014-03-05
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        相关资源
        最近更新 更多