Cara mengatasi unresolved reference Kotlin paling cepat adalah membaca baris error, lalu memperbaiki ejaan simbol dan import-nya. Error ini berarti compiler atau Android Studio tidak menemukan class, fungsi, atau variabel yang kamu panggil. Penyebabnya hampir selalu sepele: salah ketik, belum import, salah package, atau Gradle belum sinkron.
Penyebab Unresolved Reference Paling Sering di Kotlin
Kotlin bersifat case sensitive. userAdapter dan UserAdapter dianggap dua simbol berbeda.
- Salah nama fungsi, variabel, atau class, termasuk huruf besar kecil.
- Import belum ditambah atau package-nya salah setelah file dipindah folder.
- Kode berada di source set atau modul berbeda, misalnya fungsi di
androidTestdipanggil darimain. - Dependency Gradle belum sinkron, sehingga class dari library tidak dikenali.
Tabel Troubleshooting Unresolved Reference Kotlin
Bedakan dulu sumber error-nya. Teks merah di editor berarti analisis IDE gagal, sedangkan error saat tekan Run berarti kompilasi Gradle gagal. Konteksnya juga penting: Kotlin murni, Activity/Fragment XML, atau Jetpack Compose memakai import berbeda.
| Pesan error | Penyebab | Pemeriksaan cepat |
|---|---|---|
| Unresolved reference: nama fungsi | Salah ketik atau fungsi private | Cek ejaan dan modifier akses |
| Unresolved reference: nama class | Belum import atau beda modul | Tekan Alt+Enter, cek package |
| Unresolved reference: R / databinding | Build belum selesai atau XML error | Perbaiki XML lalu Rebuild |
Cara Memperbaiki Unresolved Reference Kotlin
- Baca baris error di tab Build atau tooltip merah. Catat nama simbol yang tidak dikenal.
- Cek ejaan simbol tersebut. Samakan nama file, class, dan pemanggilannya.
- Perbaiki import otomatis. Arahkan kursor ke kode merah, tekan Alt+Enter, pilih Import.
- Sinkron Gradle lewat Sync Now. Pastikan dependency yang berisi class itu ada di blok
dependencies. - Bersihkan build bila file baru tetap tidak terbaca. Pakai Clean Project lalu Rebuild Project.
import com.example.app.data.formatTanggal
fun tampilkanTanggal() {
val hasil = formatTanggal(System.currentTimeMillis())
println(hasil)
}
Contoh di atas gagal bila baris import hilang. Android Studio akan menandai formatTanggal merah sampai package yang benar ditambahkan.
FAQ
Kenapa import sudah ada tapi masih unresolved reference?
Biasanya package file sumber berubah atau ada dua class bernama sama. Hapus import lama, lalu import ulang dengan Alt+Enter.
Apakah Invalidate Caches selalu diperlukan?
Tidak. Pakai hanya bila sinkron Gradle dan Rebuild gagal, karena indeks IDE-nya yang rusak.
Kenapa class dari modul lain tidak terbaca?
Modul tersebut belum ditambah sebagai dependency di build.gradle modul pemanggil atau class-nya memakai modifier internal.