A partir da versão 10.1.68.21, o mPaaS oferece suporte ao targetSdkVersion 28. Atualize o SDK e siga este guia para adaptar seu código e verifique os componentes afetados.
As baselines anteriores do mPaaS oferecem suporte ao targetSdkVersion até a versão 26. A partir da versão 10.1.68.21, o mPaaS passa a oferecer suporte ao targetSdkVersion 28. Para atualizar, use o plugin do mPaaS para atualize o SDK para a versão 10.1.68.21 ou posterior. Em seguida, siga as orientações deste guia para adaptar o código e executar testes de regressão.
Adaptação para targetSdkVersion 28
Modifique o targetSdkVersion
Método de integração AAR
No arquivo build.gradle do módulo principal do projeto, altere a propriedade targetSdkVersion para 28.
Método de integração Portal & Bundle
No arquivo
build.gradledo módulo principal do projeto Portal, altere a propriedadetargetSdkVersionpara 28.Não é necessário alterar o
targetSdkVersionno projeto Bundle, mas ele não deve ser superior aotargetSdkVersiondo projeto Portal.
Configurações gerais
Método de integração AAR
No arquivo AndroidManifest.xml do projeto, adicione o seguinte código sob o nó application:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
Método de integração Portal & Bundle
Faça as seguintes alterações no arquivo AndroidManifest.xml do projeto Portal:
-
Adicione o código abaixo sob o nó
application:<uses-library android:name="org.apache.http.legacy" android:required="false"/> -
Remova a seguinte propriedade da
LauncherActivity. O SDK agora defina essa propriedade programaticamente.android:screenOrientation="portrait"
Outras configurações
Permitir requisições http
O Android 9.0 e versões posteriores permitem apenas requisições HTTPS por padrão. Definir o targetSdkVersion como 28 impõe essa restrição em dispositivos com Android 9.0 ou posterior. Para permitir requisições http, incluindo aquelas em miniapps, configure o networkSecurityConfig.
-
No diretório
res/xmldo seu projeto, crie um arquivonetwork_security_config.xmlcom o conteúdo a seguir. Caso utilize o método de integração Portal & Bundle, crie esse arquivo no projeto Portal.<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config> -
No arquivo
AndroidManifest.xmldo seu projeto, adicione a propriedade abaixo ao nóapplication. Se estiver usando a integração Portal & Bundle, modifique o arquivo no projeto Portal.android:networkSecurityConfig="@xml/network_security_config"
Para mais informações, consulte a documentação oficial do Google.
Falha ao definir orientação de tela para uma Activity com fundo transparente
O Android 8.0 apresenta um bug de sistema: o aplicativo falha se o seu targetSdkVersion for superior a 26 e ele abrir uma Activity que possua simultaneamente fundo transparente e orientação de tela fixa. Essa falha ocorre quando as duas condições abaixo são atendidas:
O atributo
windowIsTranslucentouwindowIsFloatingno tema da Activity está definido como true.O atributo
screenOrientationestá definido noAndroidManifest.xmlou o métodosetRequestedOrientationé chamado.
Verifique todas as Activities quanto a essas condições. Alguns temas comuns do sistema também se enquadram nesses critérios, como:
@android:style/Theme.Translucent.NoTitleBar
@android:style/Theme.Dialog
Solução recomendada:
Para a Activity cujo tema atende à condição, exclua o atributo
screenOrientationnoAndroidManifest.xmle chame o métodosetRequestedOrientationem seu lugar.-
Sobrescreva o método
setRequestedOrientationna Activity correspondente ou na classe pai, utilizandotry catch super.setRequestedOrientation()como regra base:@Override public void setRequestedOrientation(int requestedOrientation) { try { super.setRequestedOrientation(requestedOrientation); } catch (Exception ignore) { } } As classes do mPaaS
BaseActivity,BaseFragmentActivityeBaseAppCompatActivtiyjá sobrescrevem o métodosetRequestedOrientationcom essa abordagem de try-catch.Essa solução alternativa evita a falha. No entanto, o bloqueio da orientação de tela ainda pode não funcionar em dispositivos com Android 8.0. Certifique-se de que sua Activity não cause exceções quando a tela for girada, como um reinício de ciclo de vida que resulte em variáveis de membro nulas.
Código-fonte do sistema Android 8.0 relacionado:

Testes de regressão
Os testes de regressão devem incluir dispositivos com Android 9.0 ou posterior. Para a questão da falha em Activities transparentes, teste também em dispositivos com Android 8.0.
Caso utilize algum dos componentes listados abaixo, preste atenção especial aos recursos indicados durante os testes de regressão:
Componente | Itens de validação |
Mobile Gateway |
|
Scan |
|
Unified Storage |
|
Share | Confirme se o compartilhamento para Sina Weibo e QQ ocorre sem erros. |
Componente | Itens de validação |
Mobile Gateway |
|
Hotpatching | Valide se o hotpatching surte efeito. |
Scan |
|
Unified Storage |
|
Share | Confirme se o compartilhamento para Sina Weibo e QQ ocorre sem erros. |