News & Events
Compilando app em Delphi 10.3.3 compatível com API 29 do Android
- 28 de outubro de 2020
- Posted by: Adriano Santos
- Category: Android delphi Delphi for Android mobile Mobile Studio
A partir do mês de novembro o Google não permitirá mais o upload de aplicativos não compatíveis com API 29 em sua loja de apps. Isso tem causado um grande problema para desenvolvedores em diversas IDEs de desenvolvimento, incluindo o Delphi 10.3.3.
A primeira grande dica que tenho a lhe dar é fazer o upgrade do Delphi para a versão 10.4.1 que está completamente compatível com a API 29 como podemos ver na Documentação da Embarcadero.
Compilando app em Delphi 10.3.3 compatível com API 29 do Android
Na impossibilidade de fazer o upgrade e para quem tem urgência de subir o app para a loja do Google, uma outra solução é consultar o Quality Central da Embarcadero onde um dos colaboradores da empresa demonstra como é possível fazer essa compilação. Basta seguir esse link.
Para facilitar o trabalho, resolvi escrever um tutorial mostrando como é possível fazer essa atualização e te dar os atalhos para resolver o problema.
É importante esclarecer que criei um ambiente especial para esse tutorial, já que faço uso da versão mais nova do Delphi, a 10.4.1 e o caso já está resolvido nessa versão.
Atenção: O processo para fazer esse workaround é arriscado, pois lida com a instalação do Delphi e muitas substituições de arquivos. Então é altamente recomendado que se faça um BACKUP de cada arquivo/pasta que será citado nesse tutorial.
Essa atualização sua conta e risco do leitor.
Por onde devo começar?
A primeira coisa a ser feita é instalar a API 29 em seu ambiente de desenvolvimento. Para isso você deverá acessar a pasta onde salvou seu SDK/NDK durante a instalação do seu Delphi 10.3.3. Caso não saiba onde os arquivos se encontram, acesse o Delphi e em Tools > Options > Deployment > SDK Manager identifique o SDK do Android e olhe para os caminhos na janela, como na figura a seguir:
Perceba que no meu caso, mantenho os arquivos na pasta C:\PlatformSDKs. Normalmente os SDKs ficam armazenados na pasta \Arquivos de Programas (x86)\ para quem decidiu instalar o SDK/NDK juntamente com o Delphi.
Localize a pasta indicada, navegue até a pasta android-sdk-windows e localize o arquivo SDK Manager. Execute-o. Esse programa é quem gerencia as atualizações do SDK do Android. Não é necessário ter todos os SDKs e todas as ferramentas instaladas para poder compilar para Android, bastando apenas a versão atual compatível com o Delphi, nesse caso Android 10.
O que vamos fazer é instalar a API 29 e refazer a instalação do SDK dentro do Delphi. Perceba que eu já tenho a API 29 instalada em meu SDK nos dois prints de tela abaixo:
Feitas as devidas atualizações, abra o Delphi, exclua o SDK se necessário e refaça a instalação para que o Delphi detecte a API 29 e te dê acesso a ela. Seus caminhos nessa janela devem se parecer com a tela a seguir:
Copiando e substituindo os arquivos necessários
Nesse momento vamos iniciar a cópia de alguns arquivos necessários para ajustar nosso ambiente de desenvolvimento. Os passos desse tutorial não foram originalmente criados por mim. Parte dos créditos vão para o aluno Igor Bastos e também ao colega Gledston Matos que contribuíram com a comunidade Delphi e publicaram no TextUpload um pequeno passo a passo. Entretanto executei o processo em meu ambiente especial para esse tutorial e tudo ocorreu bem.
Devo novamente chamar a sua atenção
Atenção: O processo para fazer esse workaround é arriscado, pois lida com a instalação do Delphi e muitas substituições de arquivos. Então é altamente recomendado que se faça um BACKUP de cada arquivo/pasta que será citado nesse tutorial.
Essa atualização sua conta e risco do leitor.
Os arquivos necessários para esse tutorial devem ser baixados nesse link e dependendo do momento em que estiver lendo este artigo, correrá o risco dos arquivos terem sido excluídos.
Depois de baixados os arquivos, descompacte-os e abra então 02 instâncias do Windows Explorer para facilitar a cópia dos arquivos. Acesse a pasta source do Delphi que fica originalmente no diretório:
C:\Program Files (x86)\Embarcadero\Studio\20.0\source
Essa pasta contém todos os arquivos necessários para compilação de projetos no Delphi. É uma das pastas mais importantes da instalação, portanto todo cuidado é pouco.
Ao descompactar o arquivo baixado, notará que temos as pastas “debug”, “debug64”, “release”, “release64” e “rtl”, além do arquivo ICU.inc.
Copie a pasta “rtl” inteira para o diretório do Delphi substituindo alguns arquivos da pasta.
Agora abra a pasta “rtl” no diretório original do Delphi e em seguida a pasta “sys”. Dentro dela contém um arquivo com o nome “ICU.inc”. Copie-o da pasta descompactada para dentro da pasta original do Delphi.
Retorne agora para o nível da pasta 20.0 no diretório original do Delphi. Agora faremos a substituição de algumas pastas relacionadas aos binários de compilação do Android. O caminho completo original do Delphi é:
C:\Program Files (x86)\Embarcadero\Studio\20.0\
Nessa pasta você encontrará a pasta “lib”, acesse-a e repare que temos as pasta “android”, entre nesse diretório. Em seguida entre em “android”. O caminho completo caso tenha se perdido é:
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android
Localize e copie as pastas “debug” e “release” presentes no arquivo descompactado que baixamos anteriormente. Copie as pastas para o local original do Delphi substituindo-as.
Agora volte um nível de diretório retornando para “lib” e então abra a pasta “android64”. Essa pasta também contém as pastas “debug” e “release”, por isso tome cuidado para não se confundir-se nesse ponto.
Na pasta descompactada existem os diretórios “debug64” e “release64” e dentro deles o arquivo “System.o”. É ele quem será substituído nas pastas originais do Delphi. Foi na verdade ele quem substituímos no passo anterior.
Então nesse passo abra a pasta “debug64”, copie o arquivo “System.o” e cole dentro da pasta “debug” no diretório original do Delphi, para evitar se confundir, confira o diretório correto abaixo:
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android64\debug
Repita o processo de substituição agora para a pasta “Release” copiando o arquivo de dentro da pasta “Release64”. Caminho completo original do Delphi:
C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\android64\release
Perfeito!
Conclusão
É altamente recomendável lhe dizer novamente que o processo é perigoso devido a substituição de arquivos de instalação do Delphi e seu ambiente de desenvolvimento pode ser danificado se negligenciar algum passo.
Atenção: O processo para fazer esse workaround é arriscado, pois lida com a instalação do Delphi e muitas substituições de arquivos. Então é altamente recomendado que se faça um BACKUP de cada arquivo/pasta que será citado nesse tutorial.
Essa atualização fica conta e risco do leitor.
Em nossos testes de laboratório obtivemos sucesso sem causar danos em nosso ambiente. Também recebemos feedbacks positivos de alunos que seguiram os passos e conseguiram finalizar e fazer o upload para a loja do Google, a PlayStore, obtendo sucesso também na abertura do app direto da loja no dispositivo.
Se você também obtiver sucesso com esse tutorial, peço que nos comunique nos comentários abaixo e compartilhe com outros desenvolvedores.
Saliento ainda que a versão Delphi Sydnei 10.4.x contém as correções necessárias e compatibilidade total com Android 10 e API 29, portanto é altamente recomendável que faça o upgrade da sua licença para a versão nova.
Agradecimento aos alunos
Gostaria de agradecer o feedback de alunos que executaram os procedimentos e tudo foi resolvido. Obrigado.