마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 주소록 예제에서 에러가 발행합니다.

0 추천

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String[] projection = new String[]{
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.PhoneLookup.NUMBER
        };

        Cursor c = this.getContentResolver().query(Contacts.Phones.CONTENT_URI, projection, null, null, ContactsContract.Contacts.DISPLAY_NAME + " ASC");
        c.moveToFirst();
        int nameColumn = c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
        int phoneColumn = c.getColumnIndex( ContactsContract.PhoneLookup.NUMBER);
        if( c.getCount() > 0 ) {
            do{
                String name = c.getString(nameColumn);
                String phoneNumber = c.getString(phoneColumn);

                Toast.makeText(this, name+":"+phoneNumber, Toast.LENGTH_SHORT).show();
            } while(c.moveToNext());
        }
    }

}

에서 Contacts.Phones.CONTENT_URI는 구버전의 api이기 때문에 다른 것으로 바꾸려고 합니다.

그래서 ContactsContract.Contacts.CONTENT_URI로 바꾸었는데 

로그캣을 통해 다음과 같이 에러가 뜹니다.

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.chap16_1/com.mycompany.chap16_1.MainActivity}: java.lang.IllegalArgumentException: Invalid column number

 

어떤게 잘못되었을까요 ㅠㅠ

익명사용자 님이 2015년 4월 10일 질문

1개의 답변

0 추천
컬럼번호가 잘못되었다네요

익셉션 좀 더 내려보시면 Mainactivity:XXX 라고 XXX번째 줄에서 오류난거 확인가능하실겁니다
익명사용자 님이 2015년 4월 10일 답변
물론 메인엑티비티에 전부몰려있따면 ^^;;
...