Android StudioでXposed Moduleを作成するときにつまずいた。すぐ解決したものの、検索しても転んで起き上がれないケースばかりが引っかかってくるのでのでメモ。
app/libsにXposedBridgeAPI.jarを突っ込んで右クリックメニューからライブラリとして追加を選ぶところは通常通りだが、このままだとXposedBridgeAPI.jarが includeされてしまう。その結果、Framework、Module双方にAPIライブラリの実体が存在してしまうので、実行時にModuleクラスのロードに失敗する。APIライブラリを参照しつつincludeされないようにする必要がある。
キモはapp/build.gradleの記述。
動かない例
dependencies {
// Android Studioが自動生成
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/XposedBridgeApi-54.jar')
}
動く例
dependencies {
// compile fileTree(dir: 'libs', include: ['*.jar'])
// compile files('libs/XposedBridgeApi-54.jar')
// compile fileTreeをコメントアウトしただけだとビルドできない
provided files('libs/XposedBridgeApi-54.jar')
}
以上。