개발자

안드로이드 이메일 인증 기능 오류

4월 25일조회 58

2019년에 개발된 안드로이드 앱에서 이메일 인증 코드 전송이 안되는 오류가 납니다ㅜ sdk 버전 업그레이드 완료 했고 안드로이드 새로운 기종에서만 서버 오류가 나는 현상이 발생하는데 뭐가 문제일까요? 예전 기종인 note 시리즈에서는 정상 동작하는데 z플립이나 s시리즈에서 에러가 발생합니다ㅜ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

이윤호님의 프로필 사진

안드로이드의 경우 os 버전 대응을 해줘야합니다. 유지보수를 안하고 가만히 냅두면 Api가 호환이 안되는 경우가 종종 있습니다. 안드로이드 logcat에 exception이 찍힐테니 그거 먼저 확인하는게 어떨까요?

profile picture

익명

작성자

6일 전

Phenotype API 에러 라고 합니다. 혹시 해결 방법을 봐주실 수 있나요? ㅜㅜㅜㅜㅜ !!! FAILED BINDER TRANSACTION !!! (parcel size = 336628) 2024-05-03 19:52:35.659 6721-7965 GetConfigurationSnapsho com.google.android.gms.persistent E Configuration snapshot too large com.google.android.apps.messaging#com.google.android.apps.messaging [CONTEXT service_id=51 ] 2024-05-03 19:52:35.660 6721-7965 cwey com.google.android.gms.persistent E Phenotype API error. Event: # fklr@a7518a92, EventCode: GET_CONFIG_SNAPSHOT [CONTEXT service_id=51 ] cwde: 29513: Configuration snapshot too large. See go/ph-configuration-snapshot-too-large. Config package: com.google.android.apps.messaging#com.google.android.apps.messaging at cwfn.i(:com.google.android.gms@241616041@24.16.16 (190800-629452829):75) at cwey.h(:com.google.android.gms@241616041@24.16.16 (190800-629452829):18) at

이윤호님의 프로필 사진

이윤호

Junior Android Developer6일 전

로그를 보니 안드로이드 Intent에 bitmap을 첨부할때 발생하는 에러같네요 Intent에 첨부하는 bitmap의 경우 40kb까지 첨부 가능합니다. 하지만 로그에는 300kb라고 나와있네요. 예상하는 해결책 1. 비트맵 이미지를 크롭해서 사이즈를 작게한다. 2. 비트맵 이미지를 직접 첨부하지말고 바이트배열로 압축한다. 3. 비트맵 이미지를 갤러리에서 불러오는거라면 인텐트에 비트맵 대신 선택한 갤러리 사진 url을 전송한다. 로그로만 유추한거라 정확하진 않겠지만 대충 이정도 해결책이 떠오르네요.

profile picture

익명

작성자

5일 전

감사합니다.. 근데 제 Activity에서는 이미지 데이터를 사용하지 않습니다..! 큰 데이터를 첨부할때 발생하는 걸까요? 제 엑티비티 코드도 봐주실래요....? class EmailVerificationActivity : SuperActivity(){ private lateinit var binding: LayoutMailconfirmBinding var email : String = ""; var password : String = ""; var reqQueue : RequestQueue? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = LayoutMailconfirmBinding.inflate(layoutInflater) setContentView(binding.root) email = intent.extras?.get("email") as String password = intent.extras!!["password"] as String reqQueue = Volley.newRequestQueue(this) } fun tryResendEmail(view:View){ val url = SERVERADDRESS + ApiList.Users.resendEmailVerification.addr val params = JSONObject() params.put("email", email) params.put("password", password) val jsonRequest = object : JsonObjectRequest(Request.Method.POST, url, params, Response.Listener<JSONObject> { response -> Toast.makeText(this,"$response 인증코드", Toast.LENGTH_SHORT).show() if(response["status"] is String && !(response["status"] as String).isNullOrEmpty()) { Toast.makeText(this, "인증코드가 재전송 되었습니다.", Toast.LENGTH_SHORT).show() }else { Toast.makeText(this, "이메일 전송에 실패하였습니다. 다시 시도하여 주시기 바랍니다.", Toast.LENGTH_SHORT).show() return@Listener } }, Response.ErrorListener { error -> val errorMessage = error?.message Toast.makeText(this, errorMessage+"서버 요청이 실패하였습니다. 다시 시도해주시기 바랍니다.", Toast.LENGTH_SHORT).show() return@ErrorListener } ) { @Throws(AuthFailureError::class) override fun getHeaders(): Map<String, String> { val headers = HashMap<String, String>() headers.put("Content-Type", "application/json") return headers } } reqQueue!!.add(jsonRequest) } fun tryVerification(view:View){ if(binding.mailTfConfirmNumber.text.isNullOrEmpty()){ Toast.makeText(this, "메일로 전송된 인증번호를 입력해주세요", Toast.LENGTH_SHORT).show() return } val url = SERVERADDRESS + ApiList.Users.emailConfirm.addr val params = JSONObject() params.put("email", email) params.put("password", password) params.put("verifyCode", binding.mailTfConfirmNumber.text.toString()) val jsonRequest = object : JsonObjectRequest(Request.Method.POST, url, params, Response.Listener<JSONObject> { response -> if(response["status"].equals("success")) { setResult(SystemCode.RETURNCODE.EmailVerificationSuccess.code) finish() return@Listener }else { Toast.makeText(this, "올바르지 않은 인증번호.다시 한 번 확인하여 주시기 바랍니다.", Toast.LENGTH_SHORT).show() return@Listener } }, Response.ErrorListener { Toast.makeText(this, "서버 요청이 실패하였습니다. 다시 시도해주시기 바랍니다.", Toast.LENGTH_SHORT).show() return@ErrorListener } ) { @Throws(AuthFailureError::class) override fun getHeaders(): Map<String, String> { val headers = HashMap<String, String>() headers.put("Content-Type", "application/json") return headers } } reqQueue!!.add(jsonRequest) } fun emailCancel(view:View){ finish() } }

이윤호님의 프로필 사진

이윤호

Junior Android Developer5일 전

비트맵 문제가 아닌가보네요 현재 인텐트로부터 데이터를 읽어오고 있는부분만 있는데 핵심은 인텐트에 데이터를 첨부할때 인거같아요 Intent.putExtra 부분에 용량큰 데이터를 첨부하는지 체크해보는게 어떨까요?

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!