【问题标题】:Cannot resolve symbol 'sqlite_sequence' and 'name in Android'无法解析符号“sqlite_sequence”和“Android 中的名称”
【发布时间】:2019-11-11 13:46:57
【问题描述】:
我正面临这个问题:
无法解析符号“sqlite_sequence”
无法解析符号“名称”
迁移到AndroidX 后出现此问题。
虽然应用程序在调试/开发期间运行良好,但当我尝试生成签名 APK 时,它导致了这个问题并且没有解决。
这是 Analyze >> Inspect Code...
的结果
【问题讨论】:
标签:
android
android-studio
android-room
androidx
【解决方案1】:
“sqlite_sequence”和“android_metadata”在房间数据库中不可访问。
你必须使用“SQLiteOpenHelper”来删除序列。
这是我的代码,
public class DbHelper extends SQLiteOpenHelper {
static final int DATABASE_VERSION = 1;
static final String DATABASE_NAME = AppDatabase.DATABASE_NAME;
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
public static void resetAutoIncrement(DbHelper dbHelper,String tablename)
{
dbHelper.getWritableDatabase().execSQL("DELETE FROM sqlite_sequence WHERE name='"+tablename+"';");
}}
使用“resetAutoIncrement”方法