当 运行 Espresso 测试时,在 Android 工作室中找不到属性 android:forceQueryable
attribute android:forceQueryable not found in Android studio when running Espresso test
我已经使用 android studio Record Espresso Test 选项在 运行[ 中录制了我的 android 应用程序 Espresso 测试=31=] 菜单。在记录的最后我用我自己的文件名保存了测试。
单击保存按钮后,IDE 会自动在 app[=31= 的 AndroidTest 目录中创建文件] 模块。我右键单击保存的文件并单击 运行。然后它提示我以下错误。
/Users/dehanwijesekara/Documents/ProjectName/app/build/intermediates/packaged_manifests/debugAndroidTest/AndroidManifest.xml:24: AAPT: error: attribute android:forceQueryable not found.
以下是上面link.
中的文件
<?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
请指教
这是我所做的。
在浓缩咖啡录制结束时,我注意到 Android Studio 自动将以下库添加到应用级别的 Gradle build.xml
文件中。
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0-alpha02'
以下是我自己根据espresso setup guide in google android developers document.
手动添加的其他库
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-contrib
的版本等于espresso-core
如下
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.3.0'
注意,现在 espresso-contrib
和 espresso-core
都有 3.3.0
的版本
我也从我的 gradle 构建文件中删除了以下库,没有检查,如果它们持续存在会发生什么。因为我的目的不是测试,而是作为一种机器人程序不断地做一个任务。
testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.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'
我已经使用 android studio Record Espresso Test 选项在 运行[ 中录制了我的 android 应用程序 Espresso 测试=31=] 菜单。在记录的最后我用我自己的文件名保存了测试。
单击保存按钮后,IDE 会自动在 app[=31= 的 AndroidTest 目录中创建文件] 模块。我右键单击保存的文件并单击 运行。然后它提示我以下错误。
/Users/dehanwijesekara/Documents/ProjectName/app/build/intermediates/packaged_manifests/debugAndroidTest/AndroidManifest.xml:24: AAPT: error: attribute android:forceQueryable not found.
以下是上面link.
中的文件<?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
请指教
这是我所做的。
在浓缩咖啡录制结束时,我注意到 Android Studio 自动将以下库添加到应用级别的 Gradle build.xml
文件中。
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0-alpha02'
以下是我自己根据espresso setup guide in google android developers document.
手动添加的其他库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-contrib
的版本等于espresso-core
如下
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.3.0'
注意,现在 espresso-contrib
和 espresso-core
都有 3.3.0
我也从我的 gradle 构建文件中删除了以下库,没有检查,如果它们持续存在会发生什么。因为我的目的不是测试,而是作为一种机器人程序不断地做一个任务。
testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.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'