Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr
  • 0

RAD11을 설치 후 안드로이드32bit로 컴파일시 에러


조병민

질문

delphi104.2로 작성한 android 앱을 

이번에 설치한 delphi11에서 컴파일 하니 그림과 같은 에러가 나오네요....

window10, delphi11, android32bit로 컴파일 했습니다.

여기에 multi-device form에 sqlconnection1 컴포넌트만 올리고

datasnap설정후 sqlconnection active한 후 android32 bit로 컴파일 해도 

같은 결과가 나오네요...

주로 data.sqlexpr, data.dbclient에서 에러가 나옵니다.

window32bit에서는 컴파일은 잘 됩니다.

20210918_065045.jpg

이 댓글 링크
다른 사이트에 공유하기

2 answers to this question

Recommended Posts

  • 0

혹시 11.0 버전의 안드로이드 라이브러리 업데이트와 관련되어 있다면, 아래 조치가 필요할 수 있습니다. 

11.0 알렉산드리아 FMX 신기능 - 안드로이드 API 30 지원과 라이브러리 업데이트

  • 안드로이드 API 30 을 타겟으로 지정 (구글 플레이 스토어의 2021년 요구사항) 지원
  • 이전의 “Support Library” 라이브러리를 새 “AndroidX” 라이브러리로 마이그레이션
  • 이전과 다른 자바 라이브러리 세트가 포함 됨에 따라 이전 버전과 호환되지 않는다. RAD 스튜디오 이전 버전에서 작성한 프로젝트를 열 때에는 다음 절차를 진행해야 한다.
    • IDE의 Projects 창으로 간다.
    • Android 32-bit 또는 Android 64-bit를 활성 타겟 플랫폼으로 지정한다.
    • Libraries 노드를 마우스 오른쪽 클릭한다.
    • Revert System Files to Default를 선택한다.

(출처: https://welcome.devgear.co.kr/rad-feature/v110/110-알렉산드리아-fmx-r3/#Android+API30)

해결이 되었는지 여부와 관련하여 진행한 방법을 남겨 주시기 바랍니다. 같은 문제에 당면한 다른 개발자들에게 도움이 됩니다.

이 댓글 링크
다른 사이트에 공유하기

  • 0

Embarcadero DocWiki에 있는 내용 정리해서 답변드립니다.

이 치명적인 오류는 장치의 인터페이스 부분에 선언된 기호 선언이 변경되었을 때 발생하며, 소스를 사용할 수 없기 때문에 컴파일러가 이 선언에 의존하는 단위를 다시 컴파일할 수 없습니다.

가능한 해결책은 여러 가지가 있습니다. Unit1(사용 가능한 소스 코드가 있다고 가정)을 다시 컴파일하거나, 이전 버전의 Unit2를 사용하거나, Unit2를 변경하거나, 소스 코드를 가진 사용자로부터 Unit1의 새 버전을 가져옵니다.

프로젝트의 Unit이 표준 Delphi Unit과 동일한 이름을 가진 경우에도 이 오류가 발생할 수 있습니다.

예를 들어, 이 이름의 단위가 없는 이전 버전의 델파이로 작성된 프로젝트를 컴파일할 때 발생할 수 있습니다(예: search.pas는 델파이 3에 없었습니다).

이 경우 문제를 해결하려면:

1. <Unit2>를 열고 새 이름으로 저장합니다.
2. 사용 절에서 <Unit2>에 대한 모든 참조를 변경하여 새 이름을 참조한다.
3. 이 장치의 이전 버전의 <Unit2.pas> 와 <Unit2.dcu> 을 삭제합니다.
4. 프로젝트를 재구성합니다.

이하 원문입니다. 

This fatal error occurs when the declaration of symbol declared in the interface part of a unit has changed, and the compiler cannot recompile a unit that relies on this declaration because the source is not available to it.

There are several possible solutions - recompile Unit1 (assuming you have the source code available), use an older version of Unit2 or change Unit2, or get a new version of Unit1 from whoever has the source code.

This error can also occur when a unit in your project has the same name as a standard Delphi unit.

For example, this may occur is when compiling a project written in a previous version of Delphi that did not have a unit of this name (for example, search.pas was not in Delphi 3).

To solve the problem in this case:

1. Open <Unit2> and save it with a new name.
2. Alter all references to <Unit2> in uses clauses to refer to the new name.
3. Delete the old <Unit2>.pas AND <Unit2>.dcu versions of this unit.
4. Rebuild the project.

 

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 질문에 답변하기...

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.