อันนี้เพิ่งเจอสดๆ ร้อนๆ เลยขอมาเขียนไว้ที่นี่ จนกว่าตัวโปรเจค template ของ Flutter จะมีการอัพเดตครับ
รายละเอียดมีดังนี้
- Flutter version 2.8.1
- firebase_core 1.11.0
คือถ้าเราทำการเอา Flutter Plugin ของ Firebase (FlutterFire) มาใช้งานในโปรเจค และรันกับ Android จะเจอ Error เป็นชุดคล้ายๆ ด้านล่าง
arning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
e: /Users/teerasejjiraphatchandej/.gradle/caches/transforms-2/files-2.1/404e9bdce1e5f16c1ef516bb674036df/jetified-firebase-analytics-ktx-20.0.2-api.jar!/META-INF/java.com.google.android.libraries.firebase.firebase_analytics_ktx_granule.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.15.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 16s
[!] Your project requires a newer version of the Kotlin Gradle plugin.
Find the latest version on https://kotlinlang.org/docs/gradle.html#plugin-and-versions, then update /Users/teerasejjiraphatchandej/Desktop/Temp/Flutter-my-project/nextflow_firebase_realtime_db_chat/android/build.gradle:
ext.kotlin_version = '<latest-version>'
Exception: Gradle task assembleDebug failed with exit code 1
เอ้าประมาณด้านบนนี้แหละ แล้วจะแก้ error ยังไงดูด้านล่างเลย
- สังเกตดีๆ ว่าตัวที่ Error จะมีคำแนะนำอยู่แล้วครับว่าโปรเจคเราต้องการ Kotlin Gradle Plugin ตัวใหม่กว่าปัจจุบัน ซึ่งเราสามารถไปดูเวอร์ชั่นได้ที่เว็บไซต์ของ Kotlin
- จากนั้นภายในโปรเจคของเราให้เปิดโฟลเดอร์ android > build.gradle จากนั้นให้ทำการมองหาบรรทัดที่เขียนว่า ext.kotlin_version แบบภาพด้านล่าง แล้วทำการเอาเวอร์ชั่นจากในเว็บ Kotlin มาใส่แทน
buildscript {
ext.kotlin_version = '1.5.1' // แก้ตรงนี้ให้เป็นเวอร์ชั่นที่เอามาจากเว็บไซต์ของ Kotlin
...
}
เสร็จบันทึกไฟล์ และทำการ build แอพ Android ใหม่ก็น่าจะแก้ไขได้แล้วครับ