Giải pháp là tăng bộ nhớ xây dựng Android.
Khi bạn thêm nhiều mô-đun hơn vào ứng dụng của mình, có một nhu cầu đáng kinh ngạc đặt lên hệ thống xây dựng Android và cài đặt bộ nhớ mặc định sẽ không hoạt động. Để tránh OutOfMemoryErrors trong các bản dựng Android, bạn nên bỏ ghi chú cài đặt bộ nhớ gradle thay thế có trong /android/gradle.properties :
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Bạn có thể tìm thấy gradle.properties bên trong thư mục android .
PS
Chúng tôi đang làm gì và tại sao nó lại giúp ích?
Hãy để tôi giải thích một số thuật ngữ cơ bản để hiểu toàn bộ vấn đề.
Daemon : - Daemon là một chương trình máy tính chạy như một tiến trình nền, thay vì chịu sự kiểm soát trực tiếp của một người dùng tương tác.
Android Studio 2.1 kích hoạt một tính năng mới: Dex In Process , có thể tăng đáng kể tốc độ của các bản dựng hoàn toàn sạch cũng như cải thiện hiệu suất Instant Run.
Để tận dụng lợi thế của Dex In Process , bạn sẽ cần sửa đổi tệp gradle.properties của mình và tăng dung lượng bộ nhớ được cấp cho máy ảo Gradle Daemon lên 1 Gb, lên tối thiểu 2 Gb, sử dụng thuộc tính org.gradle.jvmargs :
Chỉ định các đối số JVM được sử dụng cho quy trình daemon. Cài đặt này đặc biệt hữu ích để điều chỉnh cài đặt bộ nhớ.
org.gradle.jvmargs=-Xmx2048m
Giá trị mặc định:
-Xmx10248m -XX:MaxPermSize=256m
Phân bổ bộ nhớ Gradle Daemon VM mặc định là 1 gigabyte - không đủ để hỗ trợ dexInProcess, vì vậy để tận dụng lợi thế, bạn cần đặt nó thành ít nhất 2 gigabyte.
Dex in process hoạt động bằng cách cho phép nhiều quy trình DEX chạy trong một máy ảo duy nhất cũng được chia sẻ với Gradle, đó là lý do tại sao bạn cần phân bổ bộ nhớ bổ sung trước khi nó có thể được kích hoạt - bộ nhớ đó sẽ được chia sẻ giữa Gradle và nhiều quy trình DEX.
Nếu bạn đã tăng javaMaxHeapSize trong tệp build.gradle cấp mô-đun của mình vượt quá mặc định là 1 gigabyte, bạn sẽ cần tăng bộ nhớ được gán cho Gradle Daemon tương ứng.
Khi có đủ bộ nhớ được chỉ định, Dex in Process được bật theo mặc định, cải thiện hiệu suất xây dựng tổng thể và loại bỏ chi phí khởi động nhiều phiên bản VM song song . Kết quả là một sự cải thiện đáng kể trong tất cả các lần xây dựng, bao gồm Chạy tức thì, các phiên bản tăng dần và đầy đủ.
Nguồn:
https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
https://rnfirebase.io/#increasing-android-build-memory