2013-08-14 37 views
5

Tôi muốn tạo một ứng dụng lớn, để phân phối cho một nhóm người dùng cụ thể bên ngoài Cửa hàng Play. Tôi dự định cài đặt thông qua ADB tuy nhiên tôi không thể tìm thấy thông tin khó về giới hạn kích thước.Giới hạn cài đặt APK bên ngoài Google Store

Tôi đã tạo một APK thử nghiệm đơn giản và bán 1,8 GB nội dung vào thư mục nội dung. ADB ném các lỗi sau:

could not allocate buffer for 'sizetest.apk' 

Tôi đã thử này trên một thiết bị với 7GB dung lượng miễn phí, vì vậy tôi tự hỏi những gì cuối lỗi này đến từ đâu. Nó là thiết bị lưu trữ/lưu trữ hệ thống/bộ nhớ thiết bị/bộ nhớ máy tính của tôi/ADB chính nó và có một workaround?

+0

Ngoài ra, tôi đã cố gắng sao chép tệp trực tiếp vào thiết bị và cài đặt tệp đó ở đó thông qua trình quản lý tệp. Điều này đã thành công (mặc dù nó mất một tuổi). Vì vậy, nó là một vấn đề với ADB cụ thể? –

+0

Bạn đã kiểm tra dung lượng bộ nhớ trong có sẵn trên thiết bị chưa? –

Trả lời

4

này một vấn đề với ADB. ADB sử dụng để xác minh rằng tệp là một APK và đọc toàn bộ tệp vào bộ nhớ trước khi cài đặt. Điều này có thể gây ra mallac để trả lại NULL, đóng phiên ADB của bạn (xem file_sync_client.c dòng 335-341).

Điều này đã được khắc phục here.

Remove support for verifying APK before sending across wire, since it was reading the entire APK into memory (!) before sending.


Tôi tạo ra một dự án hello world đơn giản và tạo ra một tập tin lớn (1,8 GB) và bổ sung hồ sơ cho tài sản. ADB đã cài đặt thành công APK trên thiết bị của tôi.

Miễn là có đủ dung lượng trống trên thiết bị, APK có thể cài đặt được. Nếu bạn vẫn gặp lỗi could not allocate buffer for 'APK', thì hãy cập nhật adb.

giới hạn

DEX:

duy nhất kích thước giới hạn tôi biết là kích thước của tập tin dex của bạn. Nếu tệp dex (classes.dex trong APK của bạn) vượt quá 5 MB và cần được cài đặt trên Froyo hoặc Gingerbread thì việc cài đặt sẽ không thành công. Các phiên bản Android gần đây sử dụng bộ đệm 8 hoặc 16 MB. Bạn có thể sử dụng multidex để khắc phục vấn đề này. Tuy nhiên, có thể bạn sẽ không cần phải lo lắng về kích thước tệp dex của bạn (more info).

0

Đây có thể không phải là câu trả lời hay những gì bạn đang tìm kiếm. Nhưng nó có thể là một công việc phong nha xung quanh. Bạn có thể đóng gói nó như là một phần của một rom android tùy chỉnh sau đó flash rom vào các thiết bị bạn có kế hoạch có nó được cài đặt trên.

+0

Cuối cùng đó là những gì tôi sẽ kết thúc làm. Đối với tạm thời, để thử nghiệm nội bộ và phân phối hạn chế, tôi cần một phương pháp cài đặt đáng tin cậy. –

+0

sử dụng máy ảo Android đi kèm với ADK không hoạt động? Tôi sử dụng plugin Eclipse ADK để chèn ứng dụng trên máy ảo bằng cách nhấn F5 hoặc nút chạy. –

+0

Phải có cách để flash ROM tùy chỉnh trên máy ảo. Thành thật mà nói, tôi thực sự tò mò về loại ứng dụng này. –

0

Kiểm tra liên kết này, nó có thể giúp: Android and the strange world of APK sizes

+0

Cảm ơn nhưng đó là chủ yếu đề cập đến phân phối lưu trữ. Tôi đã xem xét các tập tin mở rộng nhưng từ những gì ive đọc bất kỳ tài sản nào trong số này đều có sẵn cho các ứng dụng khác. –

Các vấn đề liên quan