Kazuhiro INOUE  블로그 글을 번역한 것입니다

 

·         본문 링크 : https://community.idera.com/developer-tools/b/blog/posts/delphi-android-64-bit-in-app-purchase-fix-ja

델파이 안드로이드 64 비트에서 TInAppPurchase 컴포넌트 수정

안드로이드 64 비트에서 TInAppPurchase 컴포넌트에 심각한 문제가 발견되어서 FMX 코드를 직접 수정하는 해결 방법을 다음과 같이 소개합니다.

 

RAD Studio 10.3.3 릴리스에서, 델파이에서 처음으로 안드로이드 64 비트가 지원되었지만, TInAppPurchase 컴포넌트를 사용하는 프로그램을  컴파일 할 때  문제가 발생한다는 사실이 몇 명의 고객에의해 보고되었습니다. 즉 이러한  앱을 안드로이드 64 비트 및 런타임에 컴파일 할 때 "억세스 위반(Accessviolation)" 이 발생합니다.

 

이러한 문제는 품질관리 포털사이트에 다음과 같이보고되고 있습니다. 

 

RSP-27228 InAppPurchase.QueryProducts 안드로이드 64 비트 앱 충돌

RSP-27140 TInAppPurchase.QueryProducts를 호출 할 때 Android 64 비트 앱이 충돌 함

 

이 보고는 서로 다른 고객이 올렸으며 개발 팀에 확인 받아, 그 원인이 밝혀졌습니다.  안드로이드 32 비트에서 안드로이드 64 비트에 마이그레이션하는 데 필요한 단계에서 FMX 데이터 형식을 Cardinal (모든 플랫폼에서 동일한 크기)에서 NativeUInt (플랫폼 별)로 변경합니다.

그러나 FMX의 내부 코드에서  하나의 데이터 형식 변경을 놓치고 있던 것을 발견했습니다. 이 문제는 해당 데이터 유형을 Cardinal에서 TFmxHandle (NativeUInt)로 변경하여 해결할 수 있습니다.

 

이 문제의 해결은 다음과 같이 할 수 있습니다.

 

   1.  C : \ Program Files (x86) \ Embarcadero \ Studio \ 20.0 \ source \ fmx 폴더의 FMX.Helpers.Android.pas 파일을 찾습니다.

       (다른 위치에 설치 한 경우, 같은 파일을 찾습니다).

 

   2.  FMX.Helpers.Android.pas 파일을 프로젝트의 소스 폴더에 복사하고 FMX.Helpers.Android.pas을 프로젝트에 추가합니다.

 

   3.  FMX.Helpers.Android.pas 파일을 열고 소스의 250 번째 줄을 다음과 같이 변경합니다.

       (수정 전) FTimerHandle : Cardinal;

       (수정 후) FTimerHandle : TFmxHandle;

 

다음은 수정된 코드 일부의 이미지입니다. 수정된 부분을 확인할 수 있습니다.

 

3010.pastedimage1583901736876v1.png-1040x0.png

 

 

이렇게 수정하시면 액세스 위반이 발생하는 문제를 해결하실 수 있습니다. 또한 RAD Studio의 다음 버전 (10.4) 버전에 업데이트될 예정입니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15414
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13960
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16496
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23267
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18921
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39245
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174696
125 N 윈도우와 맥 개발 시작을 위한 파이어몽키 코스북: 무료 다운로드 제공(385페이지) 관리자 2013.04.05 152326
124 Find the O/S Language Type c2design 2014.07.30 47762
123 [Android] 폰번호 가져오기 [1] 타락천사 2014.09.05 38535
122 델파이XE2 파이어몽키 기반 아이폰앱 개발에서 제스춰를 인식시키는 방법 박병일 2012.01.25 23255
121 RAD 스튜디오 모바일 개발 환경 설정(안드로이드, iOS) [1] file 험프리 2014.05.19 15952
120 델파이 XE2 로 아이폰 하드웨어 컨트롤 하기 박병일 2012.01.19 15502
119 파이어몽키 기반의 아이폰앱 개발에서 주소록 가져오기 박병일 2012.01.25 14431
118 델파이 XE2로 만든 아이폰 앱 - TicTacToe file 박병일 2012.01.17 13959
117 파이어몽키 3D Text Editor file 박병일 2012.02.06 13922
116 델파이 XE2의 DataSnap 서버와 OSX Client의 연동 박병일 2012.01.19 13545
115 델파이 XE2로 아이폰앱 만들기 박병일 2012.01.18 13050
114 Delphi XE2에서 맥 애플리케이션을 만들어 보자 박병일 2012.01.18 12996
113 웹상의 이미지를 폼(TImage)에서 사용하는 방법 [3] file Humphery 2013.12.14 11780
112 델파이 XE2 파이어몽키로 만든 아이폰 3D 매쉬 앱 file 박병일 2012.03.07 11632
111 파이어 몽키를 이용한 공학 계산과 그래프 박병일 2012.01.28 11427
110 파이어 몽키란 무었인가? 박병일 2012.01.19 11168
109 파이어몽키를 이용하여 당구 게임을 시뮬레이션한 데모 file 박병일 2012.02.06 10651
108 David I의 31일 동영상(한글자막) - 프로토토타입 바인드 소스와 실제 데이터셋을 사용한 UI의 C++앱 만들기(델파이 동일 적용 가능) 관리자 2013.05.11 10632
107 안드로이드 앱 서명 및 배포 file Humphery 2014.01.02 10315