Membetulkan Ralat Dagger 2: "... tidak boleh disediakan [...]"
Ralat ini berlaku apabila Dagger 2 tidak dapat menyediakan kebergantungan tanpa pembina beranotasi atau kaedah beranotasi dengan @Provides. Untuk menyelesaikannya:
1. Tambah @Inject Constructor
Tambahkan @Inject anotasi pembina pada kelas yang tidak disediakan:
class MyDependency { @Inject MyDependency() { /**/ } }
Dagger kemudian akan menggunakan pembina ini untuk mencipta contoh.
2. Cipta Kaedah @Provides dalam Modul
Sebagai alternatif, buat kaedah beranotasi dengan @Provides dalam modul yang mengembalikan kebergantungan:
@Module class MyModule { @Provides MyDependency provideMyDependency() { return new MyDependency(); } }
Dagger akan menggunakan kaedah ini untuk mencipta dan berikan pergantungan.
Tambahan Pertimbangan
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'tidak boleh disediakan' Dagger 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!