자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi FMX REST 오류에 대해 문의 드립니다.
2018.05.12 16:17
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요.
델파이를 공부하고 있는 학생입니다.
제가 REST 컴포넌트들을 이용하여 카카오API를 공부하고있는데
카카오에서 새로운 토큰 받아오는 것과 카카오 페이 테스트까지 하였습니다.
PC에서는 아무런 문제가 없는데
안드로이드에서 실행을 하면
위의 두기능중 한기능을 실행하는 버튼을 클릭하면
REST request failed: android.os.NetworkOnMainThreadException.
이와 같은 오류 메시지가 나옵니다.
제가 백업 해놓은 코드로 수정해서 다시 컴파일하면 어떨때는 둘다 잘 되다가 코드 몇자 더 추가하고
다시 폰에 넣으면 다시 오류가 뜹니다.
어느 특정 기능에만 발생하는 것이 아니라 한기능이 잘되면 다른 한기능이 오류나고를 번갈아가면서 나타납니다.
푸쉬알림을 받는 것을 추가로 하고싶은데
안드로이드에서 오류때문에 진도를 못나가고 있습니다.
위의 오류를 어떻게 하면 해결 할 수 있는지 알려주시면 감사하겠습니다.
댓글 2
-
험프리
2018.05.15 09:32
-
호홍호
2018.05.15 10:18
답변 감사합니다.
제가 테스트프로그램으로는 동작 단위를 버튼 단위로 만들어 순차적으로 확인할수 있도록 하였습니다.
제가 찾아본 결과
http://blog.marcocantu.com/blog/2014_may_background_delphi_android_threads.html
위의 블로그에서 'Threading Is It' 아래 소스코드를 참조하여 모든 단위동작에 각각 넣으니 충돌이 나지 않는 것을 확인하였습니다.
하나 다른 문제점을 확인한 것은
카카오 푸쉬를 하기위하여 GCM 토큰을 받아오고 카카오에 등록, 확인 까지는 동작이 잘되는데
위의 문제점을 해결한것과 같이 Thread 코드를 넣으면 푸쉬메시지 발송부분에서 PC, Android 둘다 동작이 안되고
(Thread 코드를 빼면 PC는 푸쉬가 전송되고 Android는 앱이 비정상종료됩니다.)
다른부분 다 잘되는데 유독 이부분(메시지전송)에서만 동작이 안되는것을 확인하였습니다.
답변 달아주셔서 감사합니다.
Delphi FMX REST 오류에 대해 문의 드립니다.
2018.05.12 16:17
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요.
델파이를 공부하고 있는 학생입니다.
제가 REST 컴포넌트들을 이용하여 카카오API를 공부하고있는데
카카오에서 새로운 토큰 받아오는 것과 카카오 페이 테스트까지 하였습니다.
PC에서는 아무런 문제가 없는데
안드로이드에서 실행을 하면
위의 두기능중 한기능을 실행하는 버튼을 클릭하면
REST request failed: android.os.NetworkOnMainThreadException.
이와 같은 오류 메시지가 나옵니다.
제가 백업 해놓은 코드로 수정해서 다시 컴파일하면 어떨때는 둘다 잘 되다가 코드 몇자 더 추가하고
다시 폰에 넣으면 다시 오류가 뜹니다.
어느 특정 기능에만 발생하는 것이 아니라 한기능이 잘되면 다른 한기능이 오류나고를 번갈아가면서 나타납니다.
푸쉬알림을 받는 것을 추가로 하고싶은데
안드로이드에서 오류때문에 진도를 못나가고 있습니다.
위의 오류를 어떻게 하면 해결 할 수 있는지 알려주시면 감사하겠습니다.
댓글 2
-
험프리
2018.05.15 09:32
-
호홍호
2018.05.15 10:18
답변 감사합니다.
제가 테스트프로그램으로는 동작 단위를 버튼 단위로 만들어 순차적으로 확인할수 있도록 하였습니다.
제가 찾아본 결과
http://blog.marcocantu.com/blog/2014_may_background_delphi_android_threads.html
위의 블로그에서 'Threading Is It' 아래 소스코드를 참조하여 모든 단위동작에 각각 넣으니 충돌이 나지 않는 것을 확인하였습니다.
하나 다른 문제점을 확인한 것은
카카오 푸쉬를 하기위하여 GCM 토큰을 받아오고 카카오에 등록, 확인 까지는 동작이 잘되는데
위의 문제점을 해결한것과 같이 Thread 코드를 넣으면 푸쉬메시지 발송부분에서 PC, Android 둘다 동작이 안되고
(Thread 코드를 빼면 PC는 푸쉬가 전송되고 Android는 앱이 비정상종료됩니다.)
다른부분 다 잘되는데 유독 이부분(메시지전송)에서만 동작이 안되는것을 확인하였습니다.
답변 달아주셔서 감사합니다.
제가 위에 작성한 내용을 보고 판단하면 다음과 같습니다.
1) 새로운 토큰을 받아 2) 카카오 페이 연동 하는 작업을 안드로이드에서 연속적으로 동작시 문제가 발생한다.(간혹)
오류 내용을 보면, 메인쓰레드에서의 네트워크 예외입니다.
혹시 두개의 동작을 연속적으로 진행 시 간섭을 일으킨건 아닐까요?
테스트 중이라면 두개의 버튼을 두고 첫번째 버튼에서 토큰을 받고, 두번째 버튼에서 카카오페이와 연동하도록 하면 어떨까요?
만약 위의 동작이 정상적이라면, 두개의 동작을 연속 호출 시 서로 간섭하지 않도록 코드를 작성해 테스트 보시면 좋을것 같습니다.