android - Android资源链接失败错误:属性'android:name'在标记必须是有效的 Java 类名
问题描述
好吧,我编写了一个测试代码,用于在单击按钮时检查是否打开新活动。我的代码看起来像
@Test
public void checkNewActivity() {
onView(withId(R.id.button_open_new_activity)).perform(click());
onView(withText("SecondActivity")).check(matches(isDisplayed()));
}
我还在清单中的两个活动中声明。
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
但在构建测试文件时遇到错误。错误
Android 资源链接失败 /Users/shihab/StudioProjects/AndroidTesting/app/build/intermediates/merged_manifests/debugAndroidTest/AndroidManifest.xml:9:错误:标签中的属性“android:name”必须是有效的 Java 类名。
解决方案
您是否在 gradle 文件中添加了 espresso 库?
如果没有,请按照以下步骤操作:
1-在 defaultConfig 添加 AndroidJUnitRunner:
defaultConfig {
...
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
...
}
2- 在依赖项中添加 espresso 库:
dependencies {
...
//espresso
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
....
}
推荐阅读
- javascript - react-native 中的 {' '} 是什么?
- php - 为什么 PHP 和 PostgreSQL 对什么是有效的 UTF-8 有截然不同的想法?
- php - 使用 PHP72 和 ImageMagick 在 Google App Engine 上是否可以进行 WEBP 输出?
- python - 根据列表中的另一列内容创建新列值
- php - 使用 php 将文件上传到谷歌驱动器并检索链接?
- sql-server - TSQL - 未捕获的事务不回滚?
- angular - 获取错误由模块“DynamicTestModule”声明的意外值“未定义”
- hostname - 我想通过从主机名(主机名 - dnsdomainname)中减去 dnsdomainname 来使用 shell 脚本查找 IP 地址?
- javascript - 奇怪的 JS 函数“切片”执行流程
- flutter - 无法运行颤振命令