代码之家  ›  专栏  ›  技术社区  ›  Shihab Uddin

Android资源链接失败错误:<instrumentation>标记中的属性“Android:name”必须是有效的Java类名

  •  0
  • Shihab Uddin  · 技术社区  · 5 年前

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

    @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资源链接失败 /用户/shihab/StudioProjects/AndroidTesting/app/build/intermediates/merged\u清单/debugAndroidTest/AndroidManifest。xml:9:错误:标记中的属性“android:name”必须是有效的Java类名。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Houssin Boulla    4 年前

    您是否在gradle文件中添加了浓缩咖啡库?

    如果没有,请执行以下步骤:

    1-在defaultConfig中添加AndroidJUnitRunner:

    defaultConfig {
            ...
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
            ...
        }
    

    2-在dependencies中添加浓缩咖啡库:

    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'
        ....
    }