Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java QtAndroid-无法从静态上下文引用非静态方法sendMessage(String,String)_Java_Android - Fatal编程技术网

Java QtAndroid-无法从静态上下文引用非静态方法sendMessage(String,String)

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

我知道这个问题可能不有趣,但我想在另一个函数中使用string函数。这是我的密码:

example.java:

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否,它在示例中声明。我的意思是
公共本机