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 14355
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13021
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15529
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22296
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17929
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38219
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173732
126 모바일 앱 개발, 가장 좋은 선택은? 관리자 2021.03.18 601
125 안드로이드 SDK 수동 설치 방법 file 김원경 2020.07.15 3864
124 iOS 앱스토어 1024x1024 아이콘 문제에 대한 해결 방법 김원경 2020.07.08 468
123 파이어몽키를 사용하여 멀티 플랫폼/아키텍처 용 소프트웨어 개발 file 김원경 2020.03.25 589
122 RAD Studio 10.3.3 안드로이드 앱에서 센서 컴포넌트 사용시 링크 오류 해결방법 김원경 2020.03.18 341
» [델파이 안드로이드 64비트 오류 수정] TInAppPurchase 컴포넌트 수정 file 김원경 2020.03.18 333
120 파이어몽키에서 Message 대화상자 사용하기/Message 대화상자와 유사하게 폼 사용하기 file 김원경 2020.01.23 2271
119 파이어몽키 TListBox 컴포넌트 사용방법: 사용자 정의 아이템데이터 동적으로 표시하기 file 김원경 2020.01.20 600
118 리눅스용 앱에 다양한 스타일 적용하기 (FMX 스타일들을 리눅스 앱에도!) 관리자 2019.09.17 441
117 밝은 톤의 사용자 친화적인 디자인을 찾고있다면 - 푸에르토 리코(Puerto Rico) FMX 스타일 관리자 2019.09.17 504
116 과감하면서도 볼드한 효과를 주고 싶다면 - Ruby Graphite FMX 스타일 관리자 2019.09.17 461
115 그라데이션이 적용된 멋진 스타일을 적용하고 싶다면 - 스텔라(Stellar) FMX 스타일 관리자 2019.09.17 556
114 리눅스 앱에 파이어몽키에서 적용했던 스타일을 똑같이 적용하세요 - Wedgewood Light 스타일 관리자 2019.09.09 351
113 리눅스 앱에 '깔끔하면서도 샤프한' 스타일을 적용하고 싶다면 - Air 스타일 관리자 2019.09.09 358
112 '눈에 확 띄는' 리눅스 앱을 만들고 싶다면 - Amakrits 스타일 관리자 2019.09.09 325
111 리눅스 앱에 '윈도우 10 컬러 스타일'을 적용하고 싶다면 - Aqua Graphite 스타일 관리자 2019.09.09 421
110 리눅스 앱에 '프로페셔널' 해보이는 스타일을 적용하고 싶다면 - Blend FMX 스타일 관리자 2019.09.09 370
109 FmxLinux - 델파이, RAD스튜디오에 추가되었습니다! 관리자 2019.06.26 498
108 [무료 제공툴] 파이어몽키 스텐실(FMX Stencils) [3] 관리자 2018.08.24 1186
107 10.2.3 새로운 기능: 파이어몽키 UI 템플릿 - 프로필 화면 관리자 2018.04.24 736