我遇到了一些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之后,它并没有将应用安装到模拟器上。
谢谢!
9条答案
按热度按时间wribegjk1#
在我的例子中,一个
Gradle Sync
解决了这个问题。uidvcgyl2#
您可以执行以下操作来解决问题
文件〉设置〉构建、执行、部署〉即时运行〉取消选中即时运行。
之后,尝试再次在模拟器上运行您的应用。
文件-〉使缓存无效/重新启动
生成-〉清理项目
文件-〉同步项目
E:\安卓系统项目\T&PUIET,KUK\应用程序\构建\输出\apk\应用程序调试.apk
关闭Android Studio 〉重命名包含特殊字符的文件夹(这里是T&PUIET,KUK)〉重新启动Android Studio 。
希望此解决方案有所帮助!
zengzsys3#
正如@大卫Miguel所说,只需将项目与Gradle同步即可。
我的问题解决了。
只要使用所有搜索在我的情况下Linux,然后我做双Shift按下。
rqcrx0a64#
1.在Android Studio中转至构建〉构建APK然后在[project-location]\app\build\outputs\apk\debug中找到应用的APK文件
2.打开PC的命令提示符或终端(适用于MAC),然后键入cd C:\Users[用户名]\AppData\Local\Android\Sdk\platform-tools
如果您安装SDK的位置不同,它可能会有所不同。
3.然后将步骤1中生成的apk复制粘贴到步骤2中的位置。
1.然后运行adb安装[生成的apk名称]
这将在你的模拟器中安装apk。只要确保没有其他设备连接,并且没有其他模拟器正在运行,除了你想安装它的地方。
ymzxtsji5#
行为变化:面向Android 12的应用!
警告:如果Activity、服务或广播接收器使用Intent过滤器,并且没有显式声明的android:exported值,则您的应用无法安装在运行Android 12的设备上。
yzckvree6#
在我的情况下(在物理设备上),我不得不更改Android:在AndroidManifest.xml中从false导出为true,其他设备无法打开Android Studio安装的应用程序(应用程序图标出现在设备上,但点击=应用程序未安装)
0lvr5msh7#
在我的情况下,同步Gradle和其他答案没有帮助。因为我的问题非常愚蠢。我没有让android studio在创建项目时生成MainActivity,所以我必须手动生成类和布局。但我错误地使用标记
<activity... </activity>
将MainActivity分配给清单文件cfh9epnr8#
在我的“dumb - case”中,我没有
launcher activity
,将以下内容添加到第一个:vh0rcniy9#
尝试使用“生成”下的生成项目选项。