Android成功构建gradle,但未在模拟器上安装应用程序

rpppsulh  于 2023-01-07  发布在  Android
关注(0)|答案(9)|浏览(223)

我遇到了一些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之后,它并没有将应用安装到模拟器上。
谢谢!

wribegjk

wribegjk1#

在我的例子中,一个Gradle Sync解决了这个问题。

uidvcgyl

uidvcgyl2#

您可以执行以下操作来解决问题

  • 您可以关闭即时运行。

文件〉设置〉构建、执行、部署〉即时运行〉取消选中即时运行。
之后,尝试再次在模拟器上运行您的应用。

  • 重新启动Android工作室

文件-〉使缓存无效/重新启动

  • 执行清理构建

生成-〉清理项目

  • 尝试同步您的项目

文件-〉同步项目

  • 确保项目位置不包含特殊字符。

E:\安卓系统项目\T&PUIET,KUK\应用程序\构建\输出\apk\应用程序调试.apk
关闭Android Studio 〉重命名包含特殊字符的文件夹(这里是T&PUIET,KUK)〉重新启动Android Studio 。
希望此解决方案有所帮助!

zengzsys

zengzsys3#

正如@大卫Miguel所说,只需将项目与Gradle同步即可。
我的问题解决了。
只要使用所有搜索在我的情况下Linux,然后我做双Shift按下。

rqcrx0a6

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。只要确保没有其他设备连接,并且没有其他模拟器正在运行,除了你想安装它的地方。

ymzxtsji

ymzxtsji5#

行为变化:面向Android 12的应用!
警告:如果Activity、服务或广播接收器使用Intent过滤器,并且没有显式声明的android:exported值,则您的应用无法安装在运行Android 12的设备上。

yzckvree

yzckvree6#

在我的情况下(在物理设备上),我不得不更改Android:在AndroidManifest.xml中从false导出为true,其他设备无法打开Android Studio安装的应用程序(应用程序图标出现在设备上,但点击=应用程序未安装)

<manifest ...>
    <application ... >
        <activity ... android:exported="true" >
0lvr5msh

0lvr5msh7#

在我的情况下,同步Gradle和其他答案没有帮助。因为我的问题非常愚蠢。我没有让android studio在创建项目时生成MainActivity,所以我必须手动生成类和布局。但我错误地使用标记<activity... </activity>将MainActivity分配给清单文件

cfh9epnr

cfh9epnr8#

在我的“dumb - case”中,我没有launcher activity,将以下内容添加到第一个:

<intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
vh0rcniy

vh0rcniy9#

尝试使用“生成”下的生成项目选项。

相关问题