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

Room数据库@AutoMigration注解无法解析错误求助

Room数据库自动迁移报错:cannot resolve symbol @AutoMigration

问题详情

修改Room数据库Schema时,新增BLOB字段并将版本升级至2,在@Database注解中配置@AutoMigration(from = 1, to = 2)后,出现“cannot resolve symbol @automigration”错误。

完整Database类代码

@Database(entities = {Device.class, User.class, DeviceUserCrossRef.class},
    autoMigrations = {
            @AutoMigration (from = 1, to =2)
    }
    ,exportSchema = true,
    version = 2)
@TypeConverters({DateConverter.class, ImageConverter.class})
public abstract class DeviceDatabase extends RoomDatabase {

private static DeviceDatabase INSTANCE;

// DAO实例获取方法
public abstract DeviceDao deviceDao();
public abstract UserDao userDao();
public abstract UserWithDevicesDao userWithDevicesDao();
public abstract DeviceWithUsersDao deviceWithUsersDao();

// 单例模式:保证仅创建一个数据库实例
public static DeviceDatabase getInstance(Context context) {

    // 检查是否已存在实例
    if (INSTANCE == null) {

        // 线程同步锁,避免多线程重复创建
        synchronized (DeviceDatabase.class) {

            if (INSTANCE == null) {
                // 创建新的数据库实例
                INSTANCE = Room.databaseBuilder(
                        context.getApplicationContext(),
                        DeviceDatabase.class,
                        "database.sqlite"
                ).build();

            }
        }
    }

    return INSTANCE;
}

}

解决步骤

  • 确认Room版本兼容性:@AutoMigration是Room 2.4.0及以上版本新增特性,需确保项目中所有Room依赖版本≥2.4.0。示例依赖配置(Module级build.gradle):
dependencies {
    def room_version = "2.5.0"
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
    // Kotlin项目替换为kapt "androidx.room:room-compiler:$room_version"
    implementation "androidx.room:room-ktx:$room_version"
}
  • 添加正确的类导入:检查代码顶部是否导入androidx.room.AutoMigration,未导入则手动添加:
import androidx.room.AutoMigration;
  • 同步项目并清理缓存:依次执行File > Sync Project with Gradle Files、Build > Clean Project、Build > Rebuild Project,解决缓存导致的识别问题。
  • 检查语法拼写:确保@AutoMigration首字母大写,from和to参数格式正确,无多余空格或语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:15:30