我想创建一个大型应用程序,以便分发给Play商店之外的特定用户组.我打算通过ADB安装这个,但是我找不到有关尺寸限制的硬信息.
我创建了一个简单的测试apk并将1.8GB的内容转储到assets文件夹中.ADB抛出以下错误:
could not allocate buffer for 'sizetest.apk'
Run Code Online (Sandbox Code Playgroud)
我在具有7Gb可用空间的设备上试过这个,所以我想知道这个错误的结果是什么.它是设备存储/系统存储/设备内存/我的PC内存/ ADB本身,是否有解决方法?
这是亚行的问题。ADB 用于验证文件是否为 APK,并在安装前将整个文件读入内存。这可能会导致mallac返回NULL,关闭您的 ADB 会话(请参阅file_sync_client.c第 335-341 行)。
这已经在这里解决了。
删除对在通过网络发送之前验证 APK 的支持,因为它在发送之前将整个 APK 读入内存 (!)。
我创建了一个简单的 hello world 项目并创建了一个大文件 (1.8 GB) 并将该文件添加到资产中。ADB 已成功在我的设备上安装 APK。
只要设备上有足够的可用空间,APK 就应该可以安装。如果仍然出现错误could not allocate buffer for 'APK',请更新 adb。
去中心化交易所限制:
我知道的唯一大小限制是 dex 文件的大小。如果 dex 文件(APK 中的classes.dex)超过 5 MB 并且需要安装在 Froyo 或 Gingerbread 上,则安装将失败。最新版本的 Android 使用 8 或 16 MB 缓冲区。您可以使用multidex来解决此问题。但是,您可能不需要担心 dex 文件的大小(更多信息)。
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |