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

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

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

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

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

Android

コメントを残す

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>