توسعه دهنده نِیتیوْ(Native) موبایل ( اندروید/آی او اس(کنارگذاشته شده)) Moeindeveloper.ir
مشکلی که شاید با آن برخورد کنید!
دیشب هنگام خروجی گرفتن از اَپَمْ، به مشکل عجیبی بر خوردم اونم این بود که دِیتابایندینگ(DataBinding) ویومدل(ViewModel) را نمی شناخت و خیلی عجیب بود که خطای type mismatch از کد من میگرفت در حالی که همین کد در پروژه قبلیم کار میکرد!
مطمئنأ الان می گویید که یک بار پروژه را Clean کن و دوباره پروژه را rebuild کن!
Build > Clean Project
Build > Rebuild Project
اما متاسفانه در این مورد جوابگو نبود!
راه حلی دومی که به ذهنم رسید این بود که کَشِ اندروید استدیو را خالی کنم!
File > Invalidate Caches / Restart
اما باز هم ناموفق بود!
راه حل بعدی، اِسْتَک اٌوِرْفِلْو(StackOverFlow):
گشتم، نبود، نگرد،نیست!☹️
بعد از اینکه حسابی جستجو کردم، به این نتیجه رسیدم که یک تاپیک ایجاد کنم و مشکلم را بیان کنم:
بعد از دو الی سه دقیقه، جواب های بی ربطی دریافت میکردم! بعضی ها میگفتن که ممکنه نال باشه مقدار ویومدلت و... . ولی مشکل من این نبود! مشکل من این بود که اندروید استدیو را آپدیت کرده بودم! الان لابد می پرسید که چه ربطی به آپدیت داره! ربطش این بود که در اندروید استدیوی جدید، از ورژن دوم DataBinding استفاده می شود و به صورت پیشفرض، مقدار آن true می باشد!
و بالاخره، بعد از سه ساعت و نیم جستجو و تاپیک زدن و... مشکلم حل شد.
راه حل نهایی:
در فایل gradle.properties، این خط را برای غیر فعال کردن DataBinding اضافه کنید:
android.databinding.enableV2=false
سورس کد پروژه در گیتهاب:
مطلبی دیگر از این انتشارات
نکات کاربردی در استفاده از scope functions در اندروید
مطلبی دیگر از این انتشارات
کار با تاریخ در اندروید (معرفی لایبری)
مطلبی دیگر از این انتشارات
کارهای لازم موقع برنامه نویسی موبایل