AndroidManifest.xml の <uses-library> が存在するか確認する方法

AndroidManifest.xml に <uses-library> で指定したライブラリが存在するか確認する方法を調べた。

すべての端末で使わないため required を false にする必要があった。しかしそうすると、ライブラリが存在しない可能性があるため NoClassDefFoundErrorNoSuchMethodError の例外が発生してしまう可能性がある。そこで Class.forName(String) でクラスの存在を確認して対応した。

だが端末によってライブラリのバージョンが違い、クラスは存在していてもメソッドが存在しないケースが出てきた。一つひとつ確認するのは面倒だったので、やはり <uses-library> が存在するか確認することにした。

PackageManager.html#getSystemSharedLibraryNames() というそのまんまのメソッドがあった。なんで今まで気づかなかったんだろ…。

Android

コメントを残す

メールアドレスが公開されることはありません。