Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix crash on Android below 8.0 #23

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

thenewvu
Copy link

@thenewvu thenewvu commented Aug 17, 2020

Crash được mô tả ở BluezoneGlobal/bluezone-app#33

Nguyên nhân: notificationManager chỉ được khởi tạo ở dòng này AppsUtils.java#L209 khi phiên bản Android >= 8.0, trên các phiên bản thấp hơn, biến không được khởi tạo, gọi methods trên biến sẽ bị NullException. Vấn đề là ở các vị trí gọi hàm có sử dụng biến này chỉ xử lý JSONException, dẫn tới exceptions không được xử lý và ứng dụng crash.

Cách xử lý: Cách xử lý hợp lý là thực thi việc quản lý notifications cho Android < 8.0, nhưng việc này nên để core devs thực hiện vì họ hiểu rõ phần lõi và yêu cầu hơn mình, khách vãng lai như mình chỉ làm hotfix thôi. Mình sửa lai các vị trí gọi hàm để catch tất cả exceptions, để không crash thôi. Mình code không test vì không có sẵn dev env, mong các bạn thông cảm.

Qua lỗi vặt gây hậu quả không vặt này, mình góp ý các bạn devs không nên tin vào IDE, mình đoán các bạn thấy IDE tự viết try-catch nên các bạn nghĩ IDE đủ thông minh để xử lý hết lỗi, hậu quả là như này đây. Góp ý chân thành, không có ý chê bai gì cả, các bạn đang làm việc có ích cho xã hội, cảm ơn các bạn nhiều.


Các bạn cũng nên xem xét việc sử dụng NotificationManagerCompat và các thư viên compat khác để tránh việc rải if (arch >= xxx) dẫn tới rất khó để kiểm soát code flow.

@ntcuong ping

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant