You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成问题:无法读取Kotlin元数据,Supabase构建失败

问题:Supabase集成导致Android构建失败,报错"Unable to read Kotlin metadata due to unsupported metadata kind: null"

构建任务在保留Supabase相关依赖和代码时失败,移除后可正常执行,报错信息如下:

Unable to read Kotlin metadata due to unsupported metadata kind: null.

我的Gradle配置文件如下:

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
kotlin("plugin.serialization") version "2.0.0" // No change
id("kotlin-kapt")
id("com.google.gms.google-services")
}

android {
namespace = "com.example.fl_5"
compileSdk = 35

defaultConfig {
    applicationId = "com.example.fl_5"
    minSdk = 26
    targetSdk = 35
    versionCode = 1
    versionName = "1.0"

     testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
 }

 buildTypes {
    release {
        isMinifyEnabled = false
        proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
        )
    }
 }

 compileOptions {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
 }

 kotlinOptions {
    jvmTarget = "11" // No change
 }

 buildFeatures {
    compose = true // No change
}
}

dependencies {
implementation(libs.androidx.core.ktx) // No change
implementation(libs.androidx.lifecycle.runtime.ktx) // No change
implementation(libs.androidx.activity.compose) // No change
implementation(platform(libs.androidx.compose.bom)) // No change
implementation(libs.androidx.ui) // No change
implementation(libs.androidx.ui.graphics) // No change
implementation(libs.androidx.ui.tooling.preview) // No change
implementation(libs.androidx.material3) // No change

// Navigation and Room dependencies
implementation("androidx.navigation:navigation-compose:2.7.5")
implementation("androidx.room:room-runtime:2.6.1")
kapt("androidx.room:room-compiler:2.6.1")

// Firebase dependencies
implementation(platform("com.google.firebase:firebase-bom:33.10.0")) // No change
implementation("com.google.firebase:firebase-analytics") // No change

// Coil for image loading
implementation("io.coil-kt:coil-compose:2.5.0") // No change

// Supabase Integration - using the latest BOM version for Supabase libraries
implementation(platform("io.github.jan-tennert.supabase:bom:3.1.3"))
implementation("io.github.jan-tennert.supabase:postgrest-kt") // No change
implementation("io.github.jan-tennert.supabase:auth-kt") // No change

// Ktor Client - updated to the latest version compatible with Kotlin 2.0.0
implementation("io.ktor:ktor-client-android:3.0.0")


implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")

// Serialization (required for Supabase)
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
// Testing dependencies - no changes here.
testImplementation(libs.junit) // No change
androidTestImplementation(libs.androidx.junit) // No change
}

已尝试更新Supabase与Ktor依赖,但问题仍未解决,求可行解决方案。


解决方案

1. 统一Kotlin插件版本

当前项目中kotlin("plugin.serialization")使用2.0.0,但libs.plugins.kotlin.android的版本可能与之不匹配(查看libs.versions.toml确认Kotlin基础版本)。将序列化插件版本改为与Kotlin Android插件一致,例如若Kotlin版本为1.9.20:

kotlin("plugin.serialization") version "1.9.20"

Kotlin 2.0属于较新的稳定初期版本,第三方库兼容性不足,建议暂时回退到1.9.x稳定版本。

2. 降级Supabase BOM版本

Supabase 3.x系列与Kotlin 2.0存在已知兼容性问题,切换到稳定的2.x版本:

implementation(platform("io.github.jan-tennert.supabase:bom:2.2.0"))

3. 移除手动指定的Ktor依赖

Supabase BOM已内置管理适配版本的Ktor,手动添加的Ktor依赖会导致版本冲突,删除以下行:

implementation("io.ktor:ktor-client-android:3.0.0")

4. 升级Room版本适配Kotlin

Room 2.6.1对Kotlin 2.0支持不完善,升级到最新稳定版本:

implementation("androidx.room:room-runtime:2.7.0")
kapt("androidx.room:room-compiler:2.7.0")

5. 清理构建缓存并重新同步

  • 执行终端命令:./gradlew clean
  • 在Android Studio中点击File > Sync Project with Gradle Files

内容的提问来源于stack exchange,提问作者Ram KVS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 17:34:51