属性 android:在运行 Espresso 测试时,在 Android 工作室中找不到 forceQueryable

我已经使用Android工作室录制了我的Android应用程序Espresso测试运行菜单中的录制Espresso测试选项。在记录的末尾,我使用自己的文件名保存了测试。

单击保存按钮后,IDE 会自动在应用模块的 AndroidTest 目录中创建文件。我右键单击保存的文件,然后单击运行。然后它会提示我以下错误。

/Users/dehanwijesekara/Documents/ProjectName/app/build/intermediates/packaged_manifests/debugAndroidTest/AndroidManifest.xml:24: AAPT: error: attribute android:forceQueryable not found.

以下是上面链接中的文件。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dehan.pizzago.test" >

<uses-sdk
    android:minSdkVersion="23"
    android:targetSdkVersion="29" />

<instrumentation
    android:name="androidx.test.runner.AndroidJUnitRunner"
    android:functionalTest="false"
    android:handleProfiling="false"
    android:label="Tests for com.dehan.pizzago"
    android:targetPackage="com.dehan.pizzago" />

<queries>
    <package android:name="androidx.test.orchestrator" />
    <package android:name="androidx.test.services" />
    <package android:name="com.google.android.apps.common.testing.services" />
</queries>

<uses-permission android:name="android.permission.REORDER_TASKS" />

<application
    android:debuggable="true"
    android:extractNativeLibs="false"
    android:forceQueryable="true" >
    <uses-library android:name="android.test.runner" />

    <activity
        android:name="androidx.test.core.app.InstrumentationActivityInvoker$BootstrapActivity"
        android:theme="@android:style/Theme" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>
    <activity
        android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity"
        android:theme="@android:style/Theme" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>
    <activity
        android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity"
        android:theme="@android:style/Theme.Dialog" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>
</application>

我使用的是 Android Studio 4.1

请指教。


答案 1

这是我所做的。

在浓缩咖啡录制结束时,我注意到Android Studio会自动将以下库添加到应用程序级别的Gradle文件中。build.xml

androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0-alpha02'

以下是我自己根据谷歌Android开发人员文档中的浓缩咖啡设置指南手动添加的其他库。

androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'

然后我把上面的库更新到最新版本,如下所示(因为android工作室建议使用最新版本,所以我更新了)。

androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestImplementation 'androidx.test:rules:1.3.0'

然后我使的版本等于如下espresso-contribespresso-core

androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.3.0'

注意,现在两者都有和版本espresso-contribespresso-core3.3.0

我也从我的gradle构建文件中删除了以下库,没有检查,如果它们保持连续会发生什么。因为我的目的不是测试,而是作为一种机器人程序不断地做一项任务。

testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'

最后,它起作用了,我假设问题中上述错误的原因是由于版本不匹配。


答案 2

在我的情况下,此配置正在工作。

androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0-alpha03'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0-alpha03'
androidTestImplementation 'androidx.test:runner:1.3.1-alpha03'
androidTestImplementation 'androidx.test:rules:1.3.1-alpha03'

推荐