게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[안드 질문]getUiAutomation 에서 자꾸 null 뜹니다 ㅠㅠ
게시물ID : programmer_12001짧은주소 복사하기
작성자 : 빙티
추천 : 0
조회수 : 464회
댓글수 : 2개
등록시간 : 2015/07/10 03:00:38
옵션
  • 창작글
  • 본인삭제금지
안녕하세요! 반도의 흔한 학생입니다!!!

제가 InstrumentationTestCase 안에 있는 getUiAutomation의 injectInputEvent로 raw 이벤트를 삽입하려고 합니다!


젤리빈서부터 나온거라 모르시는 분들도 계실 수 있어서 설명은 위의 영상을 보시면 나옵니다..



그래서 제가 위의 영상을 참고해서 다음과 같이 코딩을 하였는데요...
굵은글씨 부분(5번째 줄)에서 자꾸 nullPointerException이 뜨네요 ㅠㅠ
같은 클래스 내에 있는 new Instrumentation().sendKeyDownUpSync(KeyEvent.KEYCODE_BACK); 가 작동하길래
아래의 5번째줄을 final UiAutomation uiAutomation = new Instrumentation().getUiAutomation(); 로 해도 안되네요 ㅠㅠ

도대체 뭐가 문제길래 왜 자꾸 null이 뜨는걸까요?? ㅠㅠ

답변해 주시면 정말 감ㅁ사드리겠습니다!!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    private InstrumentationTestCase uiAutoClass = new InstrumentationTestCase();
    private void moveClick(boolean isClick, int x, int y){
        if(isClick){
            mCursorView.setImageResource(R.drawable.cursor_clicked);
            final UiAutomation uiAutomation = uiAutoClass.getInstrumentation().getUiAutomation();
            //NULL_POINTER_EXCEPTION
            
            final long eventTime = SystemClock.uptimeMillis();
            MotionEvent motionDown = MotionEvent.obtain(eventTime, eventTime, KeyEvent.ACTION_DOWN,
                    x,  y, 0); 
            motionDown.setSource(InputDevice.SOURCE_TOUCHSCREEN);
            uiAutomation.injectInputEvent(motionDown, true);
 
            MotionEvent motionUp = MotionEvent.obtain(eventTime, eventTime, KeyEvent.ACTION_UP,
                    x, y, 0);
            motionUp.setSource(InputDevice.SOURCE_TOUCHSCREEN);
            uiAutomation.injectInputEvent(motionUp, true);
            
            motionUp.recycle();
            motionDown.recycle();
        }else{
            mCursorView.setImageResource(R.drawable.cursor_norm);
        }
    }
 
    public class UIAutomationTest extends InstrumentationTestCase {
        private Instrumentation instr;
        public UIAutomationTest() {
            instr = getInstrumentation();
            Log.d("TAG""UIAutomationTest instrumentation: " + instr);
        }
        
        @Override
        protected void setUp() throws Exception {
            super.setUp();
 
            instr = getInstrumentation();
            Log.d("TAG""setUp instrumentation: " + instr);
        }
    }
cs
 
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호