Android Gradle版本有大小限制吗?

问题描述

我有一个包含3000张照片的Android项目,需要离线使用。当我将所有照片都包含在构建中时,构建将失败。当我删除其中一些时,构建成功。 我将照片放入了两个动态模块,这些模块在安装时下载。

以下是gradle扫描以供参考:https://scans.gradle.com/s/nn6eo527qvge6

这纯粹是一个大小问题,如果是的话,我该如何解决呢?

解决方法

这纯粹是一个尺寸问题

可能。

我该如何解决?

首先将照片移出res/drawable-xxhdpi-v4/并移至assets/,然后调整使用照片的代码以进行匹配。

然后,查看生成的APK大小,然后将其与预期的应用分发渠道的大小限制(例如,Play商店的100MB限制)进行比较。如果超出该限制,则需要采用其他方法(例如APK expansion files)。

,

要在CommonsWare's answer上进行扩展,我认为您执行此操作的方法不是使用Dynamic Modules,而是使用asset delivery。可以说是“营销”为“用于游戏”,但并不受此限制。

asset-delivery背后的想法是,您需要一包资产(应用中的图像)才能使应用正常运行。

可以在安装时请求此“资产”包,也可以稍后“按需”请求。所有这些令人困惑,因为Dynamic Delivery听起来很相似。但是,如asset-delivery page顶部所述,它们使用不同的API

说实话,我还没有使用过Asset Delivery,所以请带上一粒盐,然后考虑一下(例如,我quote):

如果下载大小大于150 MB,并且用户未使用Wi-Fi,则直到用户明确表示同意使用移动数据连接进行下载,下载才会开始。同样,如果下载量很大并且用户丢失了Wi-Fi,则下载将暂停,并且需要明确同意才能继续使用移动数据连接。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...