개발자
2019년에 개발된 안드로이드 앱에서 이메일 인증 코드 전송이 안되는 오류가 납니다ㅜ sdk 버전 업그레이드 완료 했고 안드로이드 새로운 기종에서만 서버 오류가 나는 현상이 발생하는데 뭐가 문제일까요? 예전 기종인 note 시리즈에서는 정상 동작하는데 z플립이나 s시리즈에서 에러가 발생합니다ㅜ
답변 1
안드로이드의 경우 os 버전 대응을 해줘야합니다. 유지보수를 안하고 가만히 냅두면 Api가 호환이 안되는 경우가 종종 있습니다. 안드로이드 logcat에 exception이 찍힐테니 그거 먼저 확인하는게 어떨까요?
익명
작성자
2024년 05월 03일
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
이윤호
Supergene Android Developer • 2024년 05월 03일
로그를 보니 안드로이드 Intent에 bitmap을 첨부할때 발생하는 에러같네요 Intent에 첨부하는 bitmap의 경우 40kb까지 첨부 가능합니다. 하지만 로그에는 300kb라고 나와있네요. 예상하는 해결책 1. 비트맵 이미지를 크롭해서 사이즈를 작게한다. 2. 비트맵 이미지를 직접 첨부하지말고 바이트배열로 압축한다. 3. 비트맵 이미지를 갤러리에서 불러오는거라면 인텐트에 비트맵 대신 선택한 갤러리 사진 url을 전송한다. 로그로만 유추한거라 정확하진 않겠지만 대충 이정도 해결책이 떠오르네요.
익명
작성자
2024년 05월 03일
감사합니다.. 근데 제 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() } }
이윤호
Supergene Android Developer • 2024년 05월 03일
비트맵 문제가 아닌가보네요 현재 인텐트로부터 데이터를 읽어오고 있는부분만 있는데 핵심은 인텐트에 데이터를 첨부할때 인거같아요 Intent.putExtra 부분에 용량큰 데이터를 첨부하는지 체크해보는게 어떨까요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 04월 25일
새로운 기종에서만 발생하는 문제라면, 아마도 특정 API 또는 하드웨어의 함수를 호출할 때 호환성 문제가 발생하고 있을 수 있습니다. 이 같은 경우에는 안드로이드 OS 버전, 기기 제조자 또는 모델에 따라서 다르게 작동하는 코드를 확인해 보셔야 합니다. 또한 Email 인증 코드 전송과 관련하여 서버 오류가 나타난다면, 네트워크 연결 상태, Email SMTP 설정 및 서버와의 통신 방식 등을 점검해보세요. 통신 로그나 에러 메시지를 살펴볼 필요가 있습니다. 만약 이메일 인증 코드를 생성하고 전송하는 과정에서 Exception이 발생하였다면 이에 대한 Stack Trace를 여기에 추가해주시면 좋을 것 같습니다. 그러면 문제의 원인 파악에 도움이 될 수 있습니다. 건너뛰었을 수 있는 업데이트 혹은 패치가 없는지도 확인하는 것이 좋습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!