目次
4. lib/armeabi-v7a フォルダーと lib/arm64-v8a フォルダー内の so ライブラリ ファイルを比較します。
5. 不足しているライブラリ ファイルがどのサードパーティの依存関係に属しているかを判断します。
6. 依存関係を特定したら、依存関係をアップグレードするか、対応する 64 ビット so ファイルを直接インポートします。
バックグラウンド
主な理由は、新しい Arm アーキテクチャが 32 ビット アプリケーションのインストールと使用をサポートしなくなったため、古いアプリケーションが 64 ビット処理と互換性がある必要があることです。
64ビットステップに対応
Google 公式リファレンスドキュメント: https://developer.android.com/distribute/best-practices/develop/64-bit?hl=zh-cn#guidelines-ndk
1. arm64 をサポートするように ndk を構成する
armeabi-v7a は保持しておく必要があります。将来役立つでしょう。新しいマシンと互換性がある場合は、古いマシンも互換性がある必要があります。古いマシンの中には 32 ビットしかサポートしていないものもあります (UnionPay の PDA デバイスである Uboxun I9000S)。
ndk { abiFilters "armeabi-v7a", "arm64-v8a" }
2.ビルドビルド
3. 構築が完了したら、apk パッケージを分析します
[ビルド - APK を分析...] プロジェクト ディレクトリの下にある ~/app/build/outputs/apk/debug/app-debug.apk を選択します
分析が完了するまで待ちます
4. lib/armeabi-v7a フォルダーと lib/arm64-v8a フォルダー内の so ライブラリ ファイルを比較します。
lib/arm64-v8a でどの SO ライブラリ ファイルが欠落しているかを確認します
5. 不足しているライブラリ ファイルがどのサードパーティの依存関係に属しているかを判断します。
さらに、手動でインポートされたファイルの中には、上記の記事の方法では依存関係を見つけることができないものもあります。そのため、git でのファイル インポートの履歴記録を使用して、どの機能が導入されたかを判断し、基本的にどの依存関係にあるのかを知る必要があります。
6. 依存関係を特定したら、依存関係をアップグレードするか、対応する 64 ビット so ファイルを直接インポートします。
依存関係のアップグレード: たとえば、私が遭遇した Fresco の依存関係、私は 1.10.0 から 1.13.0 に直接アップグレードしました。上位バージョンにアップグレードしてみてはいかがでしょうか。上位バージョンは androidx であるためです。残念ながら、私の古いプロジェクトはまだサポートされており、サポートされる予定はありません。移行する
7. テスト検証の実施
補充する
アプリケーションがデュアルスクリーン レジ (Sunmi x2 など) で実行され、デバイスが 64 ビットで、支払いの受け取りに銀聯ミス キーボード (32 ビット) を使用する必要がある場合、ミス キーボードを呼び出す SDK は 64 ビットをサポートしています。それ以外の場合、アプリケーションは 64 ビットと互換性がありません。