Android for AABによって抽出された共有ライブラリを作成するにはどうすればよいですか?

Nov 25 2020

android:extractNativeLibs="true"共有ライブラリを/data/app/%package%/...Androidで抽出するために、Android29を設定してターゲットにしました。Android 10の権限の問題を回避するには、APKで問題なく動作する場合。

最近、APKサイズがGoogle Playの制限である100Mbを超えたため、ダウンロードサイズが150Mbに増加したため、AABに切り替える必要がありました。AABからのAPKインストールをテストするとき[AndroidStudioの "APK from app bundle"デプロイオプション]/data/app/%package%/.. 空であることに気付きました(純粋な単一のAPKインストールとは対照的に)。これは、実行可能ファイルとして実行できるようにする必要があるため、問題です(を参照)。回避策の詳細)。ビルドディレクトリで分割APKを確認しましたが、テストデバイスに適したセットが含まれています。

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

そして私はapkで共有ライブラリを見ることができます。

ただしandroid:extractNativeLibs="true"、AABでは無視されます。

それはバグですか、それとも機能ですか?AABの場合でも、どうすればライブラリを強制的に抽出できますか?

PS。Gradleプラグイン5.6とandroid.enableAapt2=truegradle.propertiesを使用します。リリースバリアントとデバッグバリアントの両方を試しました。

回答

4ntoine Nov 25 2020 at 20:52

重複してすみません。

簡単android.bundle.enableUncompressedNativeLibs=falseに言うと、「gradle.properties」で使用するだけです。