Como faço para fazer libs compartilhadas extraídas pelo Android para AAB?

Nov 25 2020

Eu defini android:extractNativeLibs="true"e direcionei para o Android 29 para fazer minhas bibliotecas compartilhadas extraídas /data/app/%package%/...pelo Android. Funciona bem com o APK para contornar o problema de permissões do Android 10 .

Recentemente, tive que mudar para AAB devido ao aumento do tamanho de download para 150 MB, pois o tamanho do meu APK excede o limite do Google Play de 100 MB. Ao testar a instalação do APK do AAB [opção de implantação "APK do pacote de aplicativos" no Android Studio], percebi que /data/app/%package%/.. está vazio (em contraste com a instalação do APK simples), o que é um problema, pois preciso que eles possam ser executados como executáveis ​​(consulte os detalhes na solução alternativa). Verifiquei os apks de divisão no diretório de construção e eles contêm o conjunto certo para o meu dispositivo de teste:

/out/base-arm64_v8a_2.apk
/out/base-ru.apk
/out/base-master_2.apk
/out/base-xxhdpi.apk

e posso ver bibliotecas compartilhadas no apk.

No entanto, android:extractNativeLibs="true"é ignorado para AAB.

É um bug ou um recurso? Como posso forçar a extração de libs mesmo para AAB?

PS. Usando o plugin Gradle 5.6 e android.enableAapt2=trueem gradle.properties. Tentei as variantes Release e Debug.

Respostas

4ntoine Nov 25 2020 at 20:52

Desculpe pela duplicata .

android.bundle.enableUncompressedNativeLibs=falseResumindo : é só usar no seu "gradle.properties".