尝试在项目的LazyColumn中显示房间数据时出现此错误。
无法访问主线程上的数据库,因为它可能会长时间锁定UI
我不知道为什么它要尝试访问数据库,因为我是通过ViewModelScope获取它的。Bellow是我的MainActivity代码和ViewModel
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
private val viewModel: UserViewModel by viewModels()
override fun onCreate(savedInstanceState:
我在我的项目中使用一个Room数据库,它在生产中工作,包括UI测试(使用Espresso),直到Android 8。在Android 9上,我的UI测试失败了,因为数据库没有创建。我在logcat中得到以下错误消息
android.database.sqlite.SQLiteException: no such table: table (code 1 SQLITE_ERROR): , while compiling: SELECT * FROM table WHERE type = ?
这种情况只发生在Android 9设备上。在使用Stetho进行调试时,我也找不到db文件。在Androi
我试图从房间中获取数据,使用可能/可流动的返回,但如果我尝试使用AsyncTask,则返回数据。
这里我的查询:
@Query("SELECT * FROM Media WHERE path LIKE :path")
Maybe<Media> getMediaByPathTest(String path);
和活动中的代码:
AppDatabase.getInstance(getActivity()).mediaDao()
.getMediaByPathTest(getCurrentMedia(
我有一个包含片段F1的活动。单击按钮后,F1将被另一个片段F2替换。当按下“后退”按钮时,应用程序通过退出过渡动画从F2返回到F1。
我的Espresso测试用例大致如下所示:
@Test
public void pressingBackRestorePreviousFragment() {
// we are in F1 and about to switch to F2
onView(withId(R.id.the_button)).perform(click());
// we are now in F2, pressing back should "retu
我关闭了开发者选项上的所有动画。但是,当我尝试单击其中一个按钮时,仍然会出现此异常。
我的应用确实是活跃的,并不是完全空闲的,但我不能改变它。
android.support.test.espresso.AppNotIdleException: Looped for 6930
iterations over 60 SECONDS. The following Idle Conditions failed .
at dalvik.system.VMStack.getThreadStackTrace(Native Method)
at java.lang.Thread.getStackTrac
我正尝试在CI (本例中为Jenkins)服务器上运行我的Espresso测试。我在这里无法访问GUI,所以我决定的方法是在Android Emulator上使用-no-window参数。模拟器启动正常,但是我在安装过程中收到Error: Could not access the Package Manager. Is the system running?错误。因此,正如我上面提到的,有没有什么方法可以让我在非gui机器上运行Espresso测试?我知道有用于Android Emulator的Jenkins插件,但它似乎已经过时了,我相信最后一次更新是在2015年。谢谢!
我正在尝试用Espresso框架测试我的应用程序。应该测试应用程序在主活动中按回时是否退出,以及主应用程序是否在从主活动调用另一个活动时显示,然后再按回。
public class MainActivityTest {
@Rule
public IntentsTestRule<MainActivity> intentsTestRule = new IntentsTestRule<>(
MainActivity.class
);
@Test
public void test_pressBack() {
我的android espresso单元测试被阻止了,因为一些后台线程没有空闲。我如何确定哪个线程阻塞了我的应用程序的执行?
android.support.test.espresso.AppNotIdleException: Looped for 246 iterations over 60 SECONDS. The following Idle Conditions failed ASYNC_TASKS_HAVE_IDLED.
at dalvik.system.VMStack.getThreadStackTrace(Native Method)
因此,我现在已经为我的主屏幕编写了一个基本测试,检查主屏幕上的三个按钮是否可点击。我想知道当单击每个按钮时,我将如何检查它们是否进入正确的活动。
@RunWith(AndroidJUnit4.class)
@SmallTest
public class HomeScreenTest {
@Rule
public ActivityTestRule<StartActivity> mActivityRule = new ActivityTestRule<>(StartActivity.class);
@Test
public void testButton() {
我的应用程序上有两个活动:登录活动(loginActivity)和第二个活动(mainActivity)。我想使用Espresso测试loginActivity上的登录,所以我编写了这个测试:
public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity> {
public LoginActivityTest() {
super(LoginActivity.class);
}
@Override
public void s