Data Binding, các lỗi thường gặp và cách khắc phục khi dùng

Bài này tôi sẽ nói về databinding và một số lỗi thường gặp khi dùng.

Data Binding  trong android là 1 thư viện rất hữu ích, giúp lập trình viên tiết kiệm rất nhiều thời gian khi muốn hiển thị dữ liệu lên layout. Data Binding trong android rất mạnh, nhưng tôi thường chỉ dùng ở mức tự động sinh ra lớp layout chứa tất cả các view trong layout đó để đỡ mất công dùng hàm findViewById . Một số thư viện khác cũng support chúng ta đỡ phải dùng hàm findViewById như butterknife nhưng butterknife cũng không tiết kiệm time bằng Data Binding Butterknife cũng phải chỉ rõ view nào gắn với id nào trong layout, chúng ta phải ánh xạ 1-1 bằng tay. trong khi đó Databinding nó sẽ tự động làm việc đó mỗi khi chúng ta tạo ra một file layout xml mới mà có khai báo sử dụng Data Binding

Chi tiết mọi người tham khảo về Databinding ở đây: https://developer.android.com/topic/libraries/data-binding/index.html

Sau đây tôi sẽ nói 1 số lỗi khi dùng Databinding và cách khắc phục:

Lỗi không build được project khi dùng databinding:

Lỗi này thường là do Google hướng dẫn không đúng (hoặc 1 lý do nào đó họ chưa fix) họ hướng dẫn thế này:

android {
    ....
    dataBinding {
        enabled = true
    }
}

Tôi thấy nếu để enable = true thì dường như không thể build được project, nên tôi xóa cái dòng enable = true đi. Nên trong project của tôi dùng databinding, thường là thế này (các bạn chú ý, chỉ khi nếu các bạn để enable=true mà bị lỗi, thì mới sử dụng theo cách đưới đây):

android {
    ....
    dataBinding {
        //enabled = false
    }
}

Lỗi không sinh ra được lớp ViewDataBinding chứa tất cả các view trong file layout xml:

Lỗi này hay gặp là mặc dù chúng ta khai báo dùng databinding cho layout trong xml của chúng ta nhưng vẫn không thấy nó sinh ra 1 lớp view data binding tương ứng, cách khắc phục tôi thường làm là copy cái file đó ra 1 file mới để kích hoạt databiding tự động chạy. hầu hết các bạn sẽ thấy nó sinh ra lớp view data binding ngay sau khi vừa copy nó ra file mới. Nếu đã thấy ok thì xóa cái file vừa copy thừa kia đi, mọi việc trở lại như bình thường.

Nếu cách trên không được nữa, các bạn nên clean project rồi re-build lại project là xong ngay.

Hy vọng hữu ích cho ai hay gập vấn đề về DataBinding trong android.

Tác giả: Lê Trung Thu

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s