Android 错误:at java.lang.reflect.Method.invoke(Native Method)

      博主今日在使用Android的UI测试时,编写好代码之后出现了这样的错误:

Android 错误:at java.lang.reflect.Method.invoke(Native Method)_第1张图片

看了代码,没有错误提示,再看看代码的逻辑之类的,感觉也没问题。

后来百度了一下,感觉问题是这样的:安卓在UI测试时,测试了代码在异常(比如我测试的按钮点击异常),然后抛出一个异常,你设计的代码如何处理,但是因为你设计的代码没有处理,所以报错了。

解决方法最简单的就是加一个try-catch了,简单粗暴。

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

    @Rule
    public ActivityTestRule rule = new ActivityTestRule(MainActivity.class);
    @Test
    public void useAppContext() throws Exception {

        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
        assertEquals("com.example.myapplication", appContext.getPackageName());


        try {
            // 输入账号
            onView(withId(R.id.et_account)).perform(typeText("cxk"),closeSoftKeyboard());
            // 输入密码
            onView(withId(R.id.et_pwd)).perform(typeText("jntm"),closeSoftKeyboard());
            // 点击注册按钮
            onView(withId(R.id.btn_register)).perform(click());

            // 输入账号
            onView(withId(R.id.et_account)).perform(typeText("cxk"),closeSoftKeyboard());
            // 输入密码
            onView(withId(R.id.et_pwd)).perform(typeText("jntm"),closeSoftKeyboard());
            // 点击注册按钮
            onView(withId(R.id.btn_login)).perform(click());
   
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

我是初学者,方法有不足之处请指正。

你可能感兴趣的:(Android,错误)