У меня есть два APK. Первый APK - это основной APK, который загружает второй APK. Во втором APK у меня есть следующий код:
@Entity
public class RequestEntity {
@PrimaryKey
@NonNull
public String uid;
@ColumnInfo(name = "bucketName")
public String bucketName;
@ColumnInfo(name = "key")
public String key;
@ColumnInfo(name = "stream")
public byte[] stream;
@ColumnInfo(name = "metadata")
public byte[] metadata;
public RequestEntity(String bucketName, String key, byte[] stream, byte[] metadata) {
this.uid = bucketName + key;
this.bucketName = bucketName;
this.key = key;
this.stream = stream;
this.metadata = metadata;
}
}
@Dao
public interface RequestDao {
@Query("SELECT * FROM requestEntity")
List<RequestEntity> getAll();
@Query("SELECT * FROM requestEntity WHERE uid IN (:requestIds)")
List<RequestEntity> loadAllByIds(int[] requestIds);
@Insert
void insert(RequestEntity requestEntitie);
@Insert
void insertAll(RequestEntity... requestEntities);
@Delete
void delete(RequestEntity user);
}
@Database(entities = {RequestEntity.class}, version = 2, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
public abstract RequestDao requestDao();
}
Моя проблема, когда я вызываю эту строку во втором APK:
db = Room.databaseBuilder(context, AppDatabase.class, "database-name").build();
Я получаю исключение:
java.lang.RuntimeException: cannot find implementation for [my package name].AppDatabase. AppDatabase_Impl does not exist
Если я скопирую свой код в основной APK и вызову эту строку из основного APK, все в порядке.