20
我試圖執行Java中(從C)的函數具有以下特徵:JNI:在函數簽名傳遞多個參數的GetMethodID
public void execute(int x, int y, int action);
我的問題是要界定的GetMethodID函數簽名:
env->GetMethodID(hostClass, "execute", "(I;I;I;)V");
我是個越來越的問題是:
W/dalvikvm(1849): Bogus method descriptor: (I;I;I;)V
W/dalvikvm(1849): Bogus method descriptor: (I;I;I;)V
D/dalvikvm(1849): GetMethodID: method not found: Lcom/device/client/HostConnection;.execute:(I;I;I;)V
我不知道豪w在GetMethodID中指定方法簽名(3個整數作爲參數)。我看到有人用「;」在String和File類的其他帖子中分開參數,但是沒有像integer這樣的基元。
請問這樣做的正確方法是什麼?
謝謝。
非常感謝!你幫我解決了我的問題,謝謝! – Jary
這是解決各種JNI問題的非常有用的鏈接,謝謝! –
如果是public void execute(String x,int y); ? (Ljava/lang/String; I)V?錯誤.... – zszen