我在使用Android体系结构组件时遇到了一些问题。我想做的是从视图模型中执行存储库类中的功能。这是我的视图模型:
private final ReservationRepository reservationRepository;
private final UserRepository userRepository;
private LiveData<List<ReservationEntity>> reservations;
@Inject
public ReservationViewModel(ReservationRepository reservationRepository, UserRepository userRepository) {
this.reservationRepository = reservationRepository;
this.userRepository = userRepository;
reservations = reservationRepository.loadReservations();
}
public LiveData<List<ReservationEntity>> getAllReservations() {
return reservations;
}
然后在我的存储库类中:
private final ReservationDao reservationDao;
@Inject
public ReservationRepository(ReservationDao reservationDao) {
this.reservationDao = reservationDao;
}
public LiveData<List<ReservationEntity>> loadReservations() {
return reservationDao.getAllReservation();
}
在我的DAO课上:
@Query("SELECT * FROM reservation")
LiveData<List<ReservationEntity>> getAllReservation();
我有一个AppModule来@提供@Inject:
@Provides
@Singleton
ReservationDatabase provideReservationDatabase(Application application) {
return Room.databaseBuilder(application,ReservationDatabase.class,
ReservationDatabase.DATABASE_NAME).allowMainThreadQueries().build();
}
@Provides
@Singleton
ReservationDao provideReservationDao(ReservationDatabase reservationDatabase) {
return reservationDatabase.reservationDao();
}
我设法成功建立了项目。但是,在成功构建gradle之后,它不会将应用程序安装到模拟器上。有什么想法吗?
谢谢!
答案 0 :(得分:7)
就我而言,Gradle Sync
解决了这个问题。
答案 1 :(得分:0)
1。在Android Studio中,转到“构建”>“构建APK” 然后在以下位置找到您的应用的apk文件 [项目位置] \ app \ build \ outputs \ apk \ debug
2。打开PC的命令提示符或终端(对于MAC),然后键入 cd C:\ Users [用户名] \ AppData \ Local \ Android \ Sdk \ platform-tools
如果安装的SDK的位置不同,则可能会有所不同。
3。然后将生成的apk复制粘贴到步骤2中的位置。
这应该在您的模拟器中安装apk。只需确保没有其他设备连接,并且除了要安装的设备之外,没有其他仿真器正在运行。
答案 2 :(得分:0)
您可以执行以下操作来解决您的问题
您可以关闭即时运行。
文件>设置>构建,执行,部署>即时运行>取消选中即时运行。
然后尝试再次在模拟器上运行您的应用。
重新启动Android Studio
文件->使缓存无效/重新启动
执行清理构建
Build-> Clean Project
尝试同步您的项目
文件->同步项目
确保项目位置不包含特殊字符。
E:\ Android_Projects \ T&PUIET,KUK \ app \ build \ outputs \ apk \ app-debug.apk
关闭android studio>重命名包含特殊字符的文件夹(此处为T&PUIET,KUK)>重新启动android studio。
希望此解决方案有帮助!