userProfile.getProfileImagePath() 메소드에 대해 문의합니다

안드로이드를 개발 도중 requestMe() 의 onSuccess() 에서 userProfile.getProfileImagePath()를 호출하는데 사용자의 프로필 사진이 없을 경우에는 null 을 반환하는건지 궁금합니다. 로그인도중에 자꾸 죽고 Log 를 찍어봐도 나오지 않고 궁금합니다.

@Override
public void onSuccess(UserProfile userProfile) { //성공 시 userProfile 형태로 반환
kakaoUser = KakaoUser.getInstance();
kakaoUser.setNickname(userProfile.getNickname());
kakaoUser.setProfile_image(userProfile.getProfileImagePath());
Log.i(“profile”, userProfile.getProfileImagePath());
}

제 코드입니다. kakaoUser는 사용자의 정보를 저장시켜놓기위해 만들어 놓았습니다.

@h921013 userProfile.getNickname(), userProfile.getProfileImagePath() 의 값은 null일 될 수 있어요. 단, userProfile 객체 자체는 null이 아닐꺼에요~ 실패시 onFailure()가 불릴듯요.

userProfile.getProfileImagePath() 가 null 값이라도 불러오면 괜찮은데 아예 실행이 안되네요…
사용자목록 및 프로퍼티 관리에 프로필이 없는 사람의 profile_image 에 아무 값이 없는데 이 아무값이 없다는걸 확인할 수 있는 방법이 있을까요?

@h921013 개발자 웹사이트 메뉴에서 해당 앱을 선택하시고(내 애플리케이션), 설정 → 사용자 관리 가보시면, 사용자 list 및 정보가 좀 있어요. null이라면 거기에 null이라고 나올것 같은데요.
프로그래밍 적인거라면, 브레이크 포인트를 걸고 어디서 죽는지를 보셔야 할것 같아요.

자꾸 문의해서 죄송합니다. 프로그래밍을 못하는 것도 있겠지만 앱 자동가입으로 기본 이미지로 설정된 회원이 로그인을 하게 되면 이렇게 값이 들어오는데 이게 null 인지 0인지 애초에 불러오지도 않을뿐더러 로그( Log.i(“profile”,userProfile.getProfileImagePath() ) 에서도 출력이 되지 않습니다. 물론 로그인과 회원가입은 되는 상황입니다.

@h921013 많이 답답하시겠네요. 일단 위 캡춰화면을 보니, 총 3분인데, 위에서부터 두분은 해당 profile 값이 있으신거구요, 세번째분은 없는 케이스네요.
Log.i(…)로 출력이 안된다는것은 해당 라인이 실행이 안되는것(즉, onSuccess가 아에 불리지 않는것)은 아닐까요? onFailure가 불렸을수도…
break point를 잡고 step by step을 따라가 보시면 알 수 있을것 같은데요 ㅠㅜ
(왠지 별 도움이 안되고 있는것 같아서 죄송하네요)

Log를 통해서 onSuccess가 불러와지는건 확인이 됬는데
왜 Log.i(“profile”,userProfile.getProfileImagePath() )이게 실행이 안되는지 잘 모르겠숩니다…
일단 더 해보고 나중에 다시 문의하겠습니다. 감사합니다.

1개의 좋아요

제가 프로필이 저장되어 있는 회원과 프로필이 없는 회원 두 샘플을 가지고 userProfile.getProfileImagePath() 메소드를 실행해본 결과 프로필이 없는 회원은 userProfile.getProfileImagePath() 이 메소드는 실행을 하지 않고 그냥 넘어가네요. 밑에있는 코드들은 실행이 되는걸 확있습니다. 어떻게 된건지 혹시 아시나요?

@h921013 userProfile.getProfileImagePath()이 실행이 안되지는 않았을것이고, 아마 null이 return되고, kakaoUser.setProfile_image() 메소드 안에서 error가 난것은 아닐까요? kakaoUser#setProfile_image 구현체가 어찌된지를 몰라서요.

프로필이 없는 회원의getProfileImagePath()를 실행해보면 이런형식으로 출력이 되는데…

@h921013 헐… 신기하네요. 해당 라인을 다음과 같이 한번 해 보시겠어요?

Log.i("userProfile", userProfile);

PS) 왠지 Log.i 안드 구현체에서 null이면 안찍는듯한…?

이런식으로 출력이 되네요. 저게 기본이미지인데 null 도 아니고 아무값도 들어가지 않아서 getProfileImagePath() 가 실행이 안되는거같네요… 그러면 이미지가 없다는걸 어떻게 표현해야하나요

@h921013 그렇군요. 다음과 같이 check하시면 될것 같아요.

final String profileImagePath = userProfile.getProfileImagePath();
if (profileImagePath == null || profileImagePath.isEmpty()) {
    // 이미지 존재하지 않음.
} else {
    // 이미지 존재
}

PS) nickname, thumbnailImagePath 모두 동일합니다~