Android 安卓ApplicationProvider去了哪里?

Android 安卓ApplicationProvider去了哪里?,android,android-testing,Android,Android Testing,我正在尝试运行这条线路: Context Context=ApplicationProvider.getApplicationContext() 示例代码,如推荐的代码 但是我不能导入ApplicationProvider(我只是喜欢文档从不导入任何内容,假设编辑器会正确提示您……)。此行失败,出现“错误:包androidx.test.core.app不存在”: 导入androidx.test.core.app.ApplicationProvider 那么ApplicationProvider去

我正在尝试运行这条线路:

Context Context=ApplicationProvider.getApplicationContext()

示例代码,如推荐的代码

但是我不能导入ApplicationProvider(我只是喜欢文档从不导入任何内容,假设编辑器会正确提示您……)。此行失败,出现“错误:包androidx.test.core.app不存在”:

导入androidx.test.core.app.ApplicationProvider

那么ApplicationProvider去了哪里?我正在尝试使用当前上下文创建房间数据库:

        Context context = ApplicationProvider.getApplicationContext();
        db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
        userDao = db.getUserDao();

build.gradle
中添加一个冗余行
androidTestImplementation'androidx.test:core:1.2.0'
androidTestImplementation'androidx.test:core:$version'testImplementation'androidx.test:core:$version'
依赖关系取决于您对模块级gradle文件所做的测试类型。

答案显然是在
testImplementation'androidx.test:core:1.2.0'
中添加冗余行
build.gradle
。现在我抓住了好机会!是的,它不是真正的冗余,您需要
androidTestImplementation
而不是
testImplementation
。但是我无法在本地单元测试用例中访问它。我在RuntimeEnvironment.application中使用Robolectric库。这说明它已被弃用,解决方案是使用ApplicationProvider.getApplicationContext()。但是我如何在中访问它,因为标记为androidTestImplementation的库只能在androidTests(仪器测试用例)中访问。请guide.ya但是你不能在单元测试中使用任何android,只能使用原始Java,因此如果你需要应用程序上下文,你需要整个android堆栈和AndroidTest,如果其中包括对该导入和库的提及,那就太好了。尽管它是核心,但在我的JUnit5测试中添加空间之前,我没有添加很多测试库。