【问题标题】:Android resource linking failed error: attribute 'android:name' in <instrumentation> tag must be a valid Java class nameAndroid 资源链接失败错误:<instrumentation> 标记中的属性 'android:name' 必须是有效的 Java 类名
【发布时间】:2019-04-19 10:21:40
【问题描述】:

好吧,我编写了一个测试代码,用于在单击按钮时检查是否打开新活动。我的代码看起来像

@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类名。

【问题讨论】:

    标签: android testing android-espresso


    【解决方案1】:

    你是否在 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'
        ....
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 2019-05-09
      • 2022-10-13
      • 1970-01-01
      • 2019-02-01
      相关资源
      最近更新 更多