2017-05-23 18 views
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"によって設定されており、私は匿名クラスでそれを行いました。

+0

'com/example/package/InternalWrapper $ 1'は匿名クラスですか?これはあなたの例と一致しません。私は単に 'com/example/package/InternalWrapper'と言うことを期待しています。 –

+0

はい、 'm_delegate_class'はどこから来たのですか?あなたは 'InternalWrapper.this'ではなく匿名クラスの中でいくつかの' this'を渡すオブジェクトインスタンスからそれを得るでしょうか? (ちょうど推測する) – user2543253

答えて

0

解決策: コメントのユーザーには権利があります。 デリゲートクラスは "this"によって設定されています。私は匿名クラスでそれを行いました。

関連する問題