这是亚行的一个问题。ADB 用于验证文件是否为 APK,并在安装前将整个文件读入内存。这可能会导致mallac
返回NULL
,关闭您的 ADB 会话(参见file_sync_client.c第 335-341行)。
这是固定在这里。
取消对在通过线路发送之前验证 APK 的支持,因为它在发送之前将整个 APK 读入内存 (!)。
我创建了一个简单的 hello world 项目并创建了一个大文件(1.8 GB)并将该文件添加到 assets。ADB 在我的设备上成功安装了 APK。
只要设备上有足够的可用空间,APK 就应该是可安装的。如果仍然出现错误could not allocate buffer for 'APK'
,请更新 adb。
DEX 限制:
我知道的唯一大小限制是您的 dex 文件的大小。如果 dex 文件(您的 APK 中的 classes.dex)超过 5 MB 并且需要安装在 Froyo 或 Gingerbread 上,则安装将失败。最新版本的 Android 使用 8 或 16 MB 缓冲区。您可以使用multidex来解决此问题。但是,您可能不需要担心 dex 文件的大小(更多信息)。