私は抽象クラスの中でプライベートメソッドを呼び出そうとしました。私が使用:Xposedコールのプライベートメソッドが動作しない
XposedHelpers.findAndHookMethod("com.kabouzeid.gramophone.ui.activities.tageditor.AbsTagEditorActivity", lpparam.classLoader, "getTrackNumber",String.class, new XC_MethodHook(){
@Override
protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
Object obj1= XposedHelpers.callMethod(param.thisObject,"getAudioFile","test");
}
});
方法
getAudioFile
と
getTrackNumber
は、抽象クラス内で宣言されている
AbsTagEditorActivity
それはNoSuchMethodError:com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity#getAudioFile(java.lang.String)#bestmatch
を返します。
クラスSongTagEditorActivity
はAbsTagEditorActivity
を拡張しかし、私は
XposedHelpers.findAndHookMethod("com.kabouzeid.gramophone.ui.activities.tageditor.AbsTagEditorActivity", lpparam.classLoader, "getAudioFile",String.class, new XC_MethodHook()
{
@Override
protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable
{
XposedBridge.log("test:"+param.args[0]);
}
});
と方法getAudioFile
をフックしようとした場合、それは動作します
方法は、このようになります。
@NonNull
private AudioFile getAudioFile(@NonNull String paramString)
{
try
{
AudioFile localAudioFile = AudioFileIO.read(new File(paramString));
return localAudioFile;
} catch (Exception localException){}
return new AudioFile();
}
何私は間違っている? Xposedヘルパーで簡単に見から事前