Tatmin edici cevaplar almadım. İşte veri bağlama bilgimin özeti olan ipuçları.
Veri Bağlama Sorunlarını Çözme İpuçları
Güncelleme
Daha doğru hatalar ve öneriler almak için Android Studio ve Gradle eklenti sürümünü en son sürüme güncellemenizi şiddetle tavsiye ederim. Çünkü AS 3.2 sürümünden sonra pek bir sorunla karşılaşmıyorum.
Bkz son Android Studio ve son Gradle Plugin .
Orijinal Çözüm
Bu yanıtı okuduktan sonra, hem Sınıflar hem de Veri Değişkenleri için veri bağlama otomatik oluşturma sorunlarında takılıp kalmayacaksınız .
Bu noktaları tek tek kontrol edin. Bunlardan herhangi biri işinizi halledebilir. Sondan 3'e kadar olan nokta gerçekten önemli, bu yüzden onları kaçırmayın.
1. Veri bağlamanın etkin olup olmadığını kontrol edin
Sen olmalıdır verileri etkin bağlanma bölgesi build.gradle
. Değilse, bunu ekleyin ve Senkronize edin .
android {
...
buildFeatures {
dataBinding true
}
}
2. Çek düzeni cilt düzenine dönüştürülür
Şimdi, veri bağlama sınıfının oluşturulmasını istiyorsanız , veri bağlama ( etiket) ile sarmalamanızxml layout
gerekir <layout
. Bunun gibi bir şey.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.constraint.ConstraintLayout>
</layout>
Bununla birlikte, bağlama değişken adlarının görünüm modeli sınıfındaki gibi doğru olup olmadığını kontrol edin
3. Otomatik oluşturulmuş Binding sınıfı adı?
Veri bağlama sınıfınız, bağlama düzeni oluşturulduktan sonra oluşturulmalıdır.
Mizanpaj adınız yılan durumunda activity_main.xml
ise, deve durumunda gibi veri bağlama sınıfı üretilecektir ActivityMainBinding
.
4. İçe Aktarma Önerisini Göremiyor musunuz?
Yazarken Bazen ActivityMai...
, o zaman öneriyi göstermez o durumda, elle ithalat .
import <yourpackage>databinding.ActivityMainBinding;
5. Build Fail Logcat'i okuyun
Derlemeniz başarısız olursa bağlama sınıfınız ve düzendeki yeni değişkenler oluşturulmaz. Yani ilk yap projesi ile Ctrl + F9 (Yapı> yap projesi) .
- Bir yapı başarısız olursa, hatanın ne olduğunu görün, genellikle yerleşim alanlarında hatalarımız olur. Hata günlükleri, sorunla ilgili hata satırı numarasını gösterecektir.
- Bağlama başarısız olabilir , sözdizimi hatası veya eksik içe aktarma gibi bazı aptalca hatalara neden olabilir . Bu durumda, sınıfları bağlama hatalarıyla dolu logcat alırsınız. Ancak uygun sorunu bulmak için tam logcat okumalısınız .
6. En son gelen projeyi kapatın ve açın
Bunu her zaman yapıyorum çünkü Rebuild
/ project'ten çok daha az zaman alıyor Make
.
- Dosyadan projeyi kapat> Projeyi Kapat
- En sondan tekrar aç
O Not tercihim kapatıp açmak gelen son o çok daha az zaman alır, çünkü Yeniden / Yeniden IDE .
7. Yeniden Oluşturma Projesi
Hala sınıfınız oluşturulmadıysa. (Düzen dosyasını yapıştırdığımızda bir süre sonra olur). Sonra Projesi Yeniden dan Build> Rebuild
( kurmak veya yap projesi değil ). Veri bağlama sınıfınızı oluşturacaktır. ( Rebuild benim için Sihir yapar. )
8. En son Android Studio'ya sahip olun
AS'yi Android Studio 3.2'ye güncelledikten sonra , veri bağlama otomatik oluşturmada birçok hatanın düzeltildiğini hissettim. Yani en son AS'ye sahip olmalısınız.
# Çözüm <variables
<data>
<variable
name="item"
type="com.package.Model"/>
</data>
Genellikle, düzene bir değişken koyduğumuzda, onun bir alıcı ve ayarlayıcısını oluşturur. Ve biz kullanabilir binding.setItem(item);
ve binding.getItem();
ancak bu yöntemleri göremiyorsan sonra bilgi aşağıda okuyun.
1. En son
Bir veri değişkeni oluşturduysanız - <variable
mizanpajınızda ve veri bağlama sınıfında ayarlayıcısını ve alıcısını göstermiyorsa , Son projenizden Kapat ve Aç .
2. Türü değiştirdikten sonra projeyi temizleyin
<variable
Düzeninizde bazılarının türünü değiştirdiyseniz ve alıcı ayarlayıcı türü değişmiyorsa, projeyi temizle ( Build> Clean Project
)
Son sözler
Son olarak, hala bağlayıcı sınıfınız oluşturulmadıysa, o zaman en güçlü silahımıza sahibiz. - Android Studio'yu yeniden başlatın: D
- İlk olarak, sadece yeniden başlatmayı deneyin , bu her zaman yeniden başlattıktan sonra bağlama düzenimin değişkenlerini oluşturur.
- O zaman işe yaramazsa Geçersiz Kılan Cache & Yeniden Başlat .
Veri bağlama hatalarımı çözmek için yaptığım tek şey bu. Başka sorunla karşılaşırsanız, buradan yorum yapabilirsiniz.
dataBinding.enabled
için build.gradle içinde?