Premium
(AD) Billboard

Mengatasi Error 'Namespace Not Specified' pada Package Flutter yang Usang

(AD) Top Post

Jika kamu sedang mengembangkan aplikasi Flutter yang menggunakan plugin atau package lawas, mungkin kamu akan menemui error Namespace not specified saat proses build. Error ini terjadi karena struktur Android Gradle Plugin (AGP) terbaru mewajibkan setiap modul Android memiliki properti namespace. Artikel ini membahas solusi untuk mengatasi masalah ini melalui file build.gradle.kts dengan Kotlin DSL.

Apa Itu Error "Namespace Not Specified"?

Error ini biasanya muncul ketika menjalankan perintah flutter build atau flutter run, dan disebabkan karena modul Android tidak mendeklarasikan namespace secara eksplisit, terutama pada package atau plugin lama yang belum mengikuti struktur baru AGP 7.0 ke atas.


A problem occurred configuring project ':package_name'.
> Namespace not specified. Please specify a namespace in the module's build.gradle file...

Solusi Mengatasi Namespace Error

1. Buka File android/build.gradle.kts

Kita akan menambahkan konfigurasi global agar semua modul secara otomatis mendapatkan nilai namespace jika belum diset.

2. Tambahkan Baris Berikut di build.gradle.kts


subprojects {
    afterEvaluate {
        if (plugins.hasPlugin("com.android.library")) {
            extensions.configure<com.android.build.gradle.LibraryExtension>("android") {
                if (namespace == null) {
                    namespace = group.toString()
                }
            }
        }
    }
}

Penjelasan:

  • afterEvaluate digunakan agar konfigurasi dijalankan setelah semua plugin diinisialisasi.

  • com.android.library memastikan hanya modul Android Library yang dimodifikasi.

  • namespace = group.toString() memberi nilai default sesuai group dari project. Kamu bisa ganti nilainya sesuai kebutuhan.

3. Untuk Versi Groovy (Jika Tidak Pakai Kotlin DSL)

Jika kamu masih menggunakan build.gradle berbasis Groovy, tambahkan ini:


subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}


subprojects {
    afterEvaluate { project ->
        if (project.hasProperty('android')) {
            project.android {
                if (namespace == null) {
                    namespace project.group
                }
            }
        }
    }
}

Tips Tambahan

  • Pastikan versi AGP dan Gradle sudah sesuai dengan minimum requirement Flutter terbaru.

  • Kamu bisa mengatur nilai namespace statis jika ingin lebih eksplisit, misalnya namespace = "com.example.library".

  • Update package/plugin ke versi terbaru jika tersedia, karena sebagian besar plugin baru sudah menyertakan namespace.


Kesimpulan

Dengan menambahkan konfigurasi namespace secara global di build.gradle.kts, kamu bisa mengatasi error Namespace not specified tanpa harus mengubah banyak file pada plugin Flutter yang sudah usang. Solusi ini sangat berguna ketika kamu tidak bisa langsung memperbarui plugin ke versi terbaru.

(AD) Bottom Post
(AD) Inject Post
(AD) Sticky Desktop