【发布时间】:2018-01-20 18:11:51
【问题描述】:
所以我试图删除我的房间持久性表中的所有项目,这显然导致我这样做:
@Dao
interface MyDao {
@Query("DELETE FROM myTableName")
public void nukeTable();
}
但是,在运行 ./gradlew lint 时,我遇到了 Restricted API 故障,如下所示。
1.我的代码
@Dao
public interface AlertDao {
@Insert
void insert(List<Alert> alert);
@Query("SELECT * FROM alert")
List<Alert> queryAll();
@Query("DELETE FROM alert")
void deleteTable();
}
- 我的 lint 错误
受限 API ../generated/source/apt/debug/com/app/test/storage/dao/AlertDao_Impl.java:>84: SharedSQLiteStatement.acquire 只能从同一个 >library 组中调用(groupId=android.arch.persistence 。房间) 81 第82章 83 公共无效删除表(){ 84 最终 SupportSQLiteStatement _stmt = >__preparedStmtOfDeleteTable.acquire();
85 __db.beginTransaction(); 86 尝试{ 87 _stmt.executeUpdateDelete();../generated/source/apt/debug/com/app/test/storage/dao/AlertDao_Impl.java:91:SharedSQLiteStatement.release 只能从同一个库组中调用(groupId=android.arch.持久性.房间) 88 __db.setTransactionSuccessful(); 89}终于{ 90 __db.endTransaction(); 91 __preparedStmtOfDeleteTable.release(_stmt);
92 } 93}../generated/source/apt/debug/com/app/test/storage/dao/AlertDao_Impl.java:98:RoomSQLiteQuery 只能从同一个库组中调用(groupId=android.arch.persistence.房间) 95 @覆盖 96 公共列表 queryAll() { 97 final String _sql = "SELECT * FROM alert"; 98 最终 RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 0);
99 最终游标 _cursor = __db.query(_statement); 100 次尝试{ 101 最终 int _cursorIndexOfAutoGeneratedKey = _cursor.getColumnIndexOrThrow("autoGeneratedKey");../generated/source/apt/debug/com/app/test/storage/dao/AlertDao_Impl.java:134:RoomSQLiteQuery.release 只能从同一个库组中调用(groupId=android.arch.持久性.房间) 131 返回_结果; 132}终于{ 133 _cursor.close(); 134 _statement.release();
135 } 136 } 137 }
任何帮助将不胜感激。
问候
【问题讨论】: