Java QtAndroid-无法从静态上下文引用非静态方法sendMessage(String,String)
我知道这个问题可能不有趣,但我想在另一个函数中使用string函数。这是我的密码: example.java:Java QtAndroid-无法从静态上下文引用非静态方法sendMessage(String,String),java,android,Java,Android,我知道这个问题可能不有趣,但我想在另一个函数中使用string函数。这是我的密码: example.java: public native String sendMessage(String jid, String message); . . . ImageButton1.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { final String
public native String sendMessage(String jid, String message);
.
.
.
ImageButton1.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
final String m_Text = EditText1.getText().toString();
if (m_Text.length() > 0){
notifyMessage (m_Text);
String uid = new String ();
uid = sendMessage(final_jid , m_Text);
alertDialog.dismiss();
}
}
});
JNIEXPORT jstring JNICALL Java_org_qtproject_example_myapplication_MiniXmppService_sendMessage(
JNIEnv *env, jobject obj, jstring jid, jstring message)
{
std::string sjid;
jstrToStdStr(env, jid, sjid);
if (g_bot)
{
CMessageSession *session = g_bot->getOutgoingSessionForJid(sjid);
if (session)
{
std::string smessage;
jstrToStdStr(env, message, smessage);
g_bot->m_mutexClient.lock();
jstring res = env->NewStringUTF(session->session->send(smessage).c_str());
g_bot->m_mutexClient.unlock();
return res;
}
}
return env->NewStringUTF("uid-*-*");
}
示例。cpp:
public native String sendMessage(String jid, String message);
.
.
.
ImageButton1.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
final String m_Text = EditText1.getText().toString();
if (m_Text.length() > 0){
notifyMessage (m_Text);
String uid = new String ();
uid = sendMessage(final_jid , m_Text);
alertDialog.dismiss();
}
}
});
JNIEXPORT jstring JNICALL Java_org_qtproject_example_myapplication_MiniXmppService_sendMessage(
JNIEnv *env, jobject obj, jstring jid, jstring message)
{
std::string sjid;
jstrToStdStr(env, jid, sjid);
if (g_bot)
{
CMessageSession *session = g_bot->getOutgoingSessionForJid(sjid);
if (session)
{
std::string smessage;
jstrToStdStr(env, message, smessage);
g_bot->m_mutexClient.lock();
jstring res = env->NewStringUTF(session->session->send(smessage).c_str());
g_bot->m_mutexClient.unlock();
return res;
}
}
return env->NewStringUTF("uid-*-*");
}
我犯了一个错误:
无法从静态上下文引用非静态方法sendMessage(String,String)
如何修复?使用
公共静态字符串sendMessage(字符串jid,字符串message)代码>取而代之。或者创建一个对象然后使用该方法。@UmaKanth如何创建一个对象然后使用该方法?sendMessage declare在示例中。java
?@Blackbelt否,它在示例中声明。我的意思是公共本机