2016-06-24 24 views
7

Trong ứng dụng Android của tôi, tôi đang gỡ lỗi ứng dụng đó khi đã bật chạy tức thì.Android: Ứng dụng gặp sự cố thường xuyên khi chạy ngay

Ứng dụng cung cấp cho tôi các lỗi không mong muốn rất thường xuyên, được giải quyết nếu tôi đã thực hiện một bản dựng rõ ràng.

Ví dụ, đôi khi không tìm thấy trường hợp ngoại lệ của lớp mà ở đó lớp học thực sự ở đó. Ngoài ra, đôi khi có trường hợp ngoại lệ cho lớp khi cố gắng truyền View được trả về bởi findViewById() đến loại mục tiêu (có thể studio android đã hiểu sai các ID phần tử khi triển khai bố cục nóng).

Tất cả các lỗi này được giải quyết mà không cần thay đổi mã, chỉ bằng cách tạo một bản dựng đầy đủ. Chạy ngay lập tức đã thực hiện thành công quá trình xây dựng chậm hơn hai hoặc ba lần đối với tôi.

Tại sao tôi gặp phải các lỗi này? Có ai biết làm thế nào để có được ngay lập tức chạy để làm việc đúng cách?

+0

Tôi đã gặp phải sự cố tương tự, hãy tạo một bản dựng đầy đủ thay vì khi nào bạn muốn thử nghiệm trên thiết bị khác trình mô phỏng hoặc thiết bị bạn đang sử dụng để kiểm tra. –

+0

Sử dụng mã xử lý ngoại lệ (try/catch blocks) một cách thích hợp.try/catch blocks xung quanh mã có khả năng tạo ra ngoại lệ và sử dụng khối cuối cùng để xóa tài nguyên, nếu cần. – Developer

+0

thì làm cách nào chúng ta có thể tận dụng lợi thế của việc chạy tức thì @karanvs – Killer

Trả lời

5

Bạn không phải là người duy nhất. Chạy tức thì ít ổn định hoặc hiện tại chúng tôi có thể nói không đáng tin cậy.

Chạy tức thì có một số bước hoán đổi là this document describes. Trong trường hợp của bạn, Instant Run không thể nhận ra những thay đổi của bạn tốt, do đó, trao đổi ấm áp ngay cả khi nó yêu cầu trao đổi lạnh, và như vậy.

Chạy tức thì rất hữu ích khi chỉnh sửa vị trí GUI nhỏ, tôi muốn nói đây là kịch bản hữu ích duy nhất hiện tại, vì vậy tôi khuyên bạn nên tắt tính năng này trong quá trình phát triển chung. Bạn có thể tắt nó bằng cách bỏ chọn hộp kiểm Settings > Build, Execution, Deployment > Enable Instant Run to hot swap....

Nếu bạn nghĩ Instant Run là ưa thích và vẫn muốn sử dụng nó, bạn có thể sẽ phải đối mặt với vấn đề như vậy nhiều lần. Vì điều đó, chỉ cần xây dựng lại tất cả những gì bạn đã trải qua. Đó là tất cả những gì chúng ta có thể làm bây giờ.

1

Đây là tài liệu về tức thì Run:

  1. Android Studio tại triển khai xây dựng sạch nhanh hơn bao giờ hết. Ngoài ra, đẩy các thay đổi mã gia tăng lên trình giả lập hoặc thiết bị vật lý hiện đã gần như tức thời. Xem lại các cập nhật của bạn mà không cần triển khai lại bản dựng gỡ lỗi mới hoặc trong nhiều trường hợp, không cần khởi động lại ứng dụng.
  2. Run tức thì hỗ trợ đẩy các thay đổi sau một ứng dụng đang chạy:
    • Thay đổi để thực hiện một phương pháp dụ hiện có hoặc phương pháp tĩnh
    • thay đổi đến một tài nguyên ứng dụng hiện
    • Thay đổi mã cấu trúc, chẳng hạn dưới dạng chữ ký phương thức hoặc trường tĩnh (yêu cầu thiết bị đích chạy API cấp 21 trở lên).

Vì vậy, tôi nghĩ rằng khi bạn thêm lớp mới hoặc thêm view_id mới, bạn cần để làm sạch - xây dựng lại dự án của bạn. Đây chỉ là ý kiến ​​của tôi, sửa tôi nếu tôi sai. More info about Instant Run

3

Chạy ngay bây giờ vẫn còn đầy lỗi.Ngay cả google cũng nói rằng:

Chạy tức thì được thiết kế để tăng tốc quá trình xây dựng và triển khai trong hầu hết các trường hợp. Tuy nhiên, có một số khía cạnh để sử dụng Instant Run có thể ảnh hưởng đến hành vi và khả năng tương thích của ứng dụng đó với ứng dụng của bạn. Nếu bạn kinh nghiệm bất kỳ vấn đề khác trong khi sử dụng Run tức thì, xin vui lòng file a bug

Nó thêm một số tập tin dex để ứng dụng của chúng tôi để tăng tốc độ xây dựng và triển khai các quy trình. Thỉnh thoảng khi thay đổi bố cục rồi Xây dựng và Chạy dự án, nó vẫn hiển thị bố cục cũ. Ngay cả apk sẽ được sản xuất bởi nó sẽ không chạy trên một số thiết bị.

Còn bây giờ, tốt hơn nếu chúng ta tắt nó đi:

Để vô hiệu hóa tức thì Run:

  1. mở hộp thoại Cài đặt hoặc Preferences.
  2. Điều hướng đến Xây dựng, Thực thi, Triển khai> Chạy tức thì.
  3. Bỏ chọn hộp bên cạnh Bật chạy tức thì.
0

Nếu tôi thay đổi các tập tin AndroidManifest.xml, studio android thực hiện một đầy đủ xây dựng, nhưng điều này là nhanh hơn nhiều để nắm tay dọn dẹp, và sau đó xây dựng dự án.

Vì vậy, tôi thêm một dòng trống vào tệp kê khai, bất cứ khi nào tôi muốn android studio xây dựng dự án đầy đủ. Điều này hiệu quả hơn nhiều để thực hiện xây dựng đầy đủ thủ công.

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