0
エラー:アンドロイドJNI java.lang.NoSuchMethodErrorの:なし非静的メソッド
java.lang.NoSuchMethodError: no non-static method "Lcom/example/package/InternalWrapper$1;.InternalCallback(IILjava/lang/String;[B)V"
インタフェース:
interface InternalDelegate {
void InternalCallback(int var1, int var2, String var3, byte[] var4);
}
クラス:
package com.example.package;
public class InternalWrapper implements InternalDelegate {
@Override
public void InternalCallback(int var1, int var2, String var3, byte[] var4) {
Log.e(LOG_TAG, "InternalCallback() !!!!!!!!!!!");
}
}
JNI一部:
// Prepare the Java callback
jmethodID methodId = env->GetMethodID(m_delegate_class, "InternalCallback", "(IILjava/lang/String;[B)V");
ここで何が問題なのですか? 私は何かを見落とす可能性がありますので、あなたのサイトからチェックしてください。
解決策: 以下の人には権利があります。デリゲートクラスは "this"によって設定されており、私は匿名クラスでそれを行いました。
'com/example/package/InternalWrapper $ 1'は匿名クラスですか?これはあなたの例と一致しません。私は単に 'com/example/package/InternalWrapper'と言うことを期待しています。 –
はい、 'm_delegate_class'はどこから来たのですか?あなたは 'InternalWrapper.this'ではなく匿名クラスの中でいくつかの' this'を渡すオブジェクトインスタンスからそれを得るでしょうか? (ちょうど推測する) – user2543253