Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 异步任务运行时异常执行doInBacground()时出错_Java_Android_Xmpp - Fatal编程技术网

Java 异步任务运行时异常执行doInBacground()时出错

Java 异步任务运行时异常执行doInBacground()时出错,java,android,xmpp,Java,Android,Xmpp,当我申请时,它会给我错误 main活动 public class MainActivity<XMPPConnection> extends Activity { private ArrayList<String> messages = new ArrayList(); private Handler mHandler = new Handler(); private SettingsDialog mDialog; private EditText mRecipie

当我申请时,它会给我错误

main活动

public class MainActivity<XMPPConnection> extends Activity {    
private ArrayList<String> messages = new ArrayList();
private Handler mHandler = new Handler();
private SettingsDialog mDialog;
private EditText mRecipient;
private EditText mSendText;
private ListView mList;
private XMPPConnection connection;
public static String setConnection;

/**
 * Called with the activity is first created.
 */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    Log.i("XMPPClient", "onCreate called");
    setContentView(R.layout.activity_main);

    mRecipient = (EditText) this.findViewById(R.id.recipient);
    Log.i("XMPPClient", "mRecipient = " + mRecipient);
    mSendText = (EditText) this.findViewById(R.id.sendText);
    Log.i("XMPPClient", "mSendText = " + mSendText);
    mList = (ListView) this.findViewById(R.id.listMessages);
    Log.i("XMPPClient", "mList = " + mList);
    setListAdapter();

    // Dialog for getting the xmpp settings
    mDialog = new SettingsDialog(this);
    new MyTask().execute();   
    // Set a listener to show the settings dialog
    Button setup = (Button) this.findViewById(R.id.setup);
    setup.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            new MyTask().execute();
        }
    });

    // Set a listener to send a chat text message
    Button send = (Button) this.findViewById(R.id.send);
    send.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
            String to = mRecipient.getText().toString();
            String text = mSendText.getText().toString();

            Log.i("XMPPClient", "Sending text [" + text + "] to [" + to + "]");
            Message msg = new Message(to, Message.Type.chat);
            msg.setBody(text);
            ((org.jivesoftware.smack.XMPPConnection) connection).sendPacket(msg);
            messages.add(((org.jivesoftware.smack.XMPPConnection) connection).getUser() + ":");
            messages.add(text);
            setListAdapter();
        }
    });
}

/**
 * Called by Settings dialog when a connection is establised with the XMPP server
 *
 * @param connection
 */
public void setConnection
(XMPPConnection
        connection) {
 this.connection = connection;
 if (connection != null) {
// Add a packet listener to get messages sent to us
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
((Connection) connection).addPacketListener(new PacketListener() {
    public void processPacket(Packet packet) {
        Message message = (Message) packet;
        if (message.getBody() != null) {
            String fromName = StringUtils.parseBareAddress(message.getFrom());
            Log.i("XMPPClient", "Got text [" + message.getBody() + "] from [" + fromName + "]");
            messages.add(fromName + ":");
            messages.add(message.getBody());
            // Add the incoming message to the list view
            mHandler.post(new Runnable() {
                public void run() {
                    setListAdapter();
                }
            });
        }
    }
}, filter);
    }
}

private void setListAdapter
        () {
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.multi_line_list_item,
            messages);
    mList.setAdapter(adapter);
}   
public类MainActivity扩展活动{
private ArrayList messages=new ArrayList();
私有处理程序mHandler=新处理程序();
私人设置对话mDialog;
私人编辑文本;
私有编辑文本mSendText;
私有ListView-mList;
专用XMPPConnection连接;
公共静态字符串连接;
/**
*首先创建使用活动调用的。
*/
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
Log.i(“XMPPClient”,“onCreate被调用”);
setContentView(R.layout.activity_main);
mRecipient=(EditText)this.findViewById(R.id.recipient);
Log.i(“XMPPClient”,“mRecipient=“+mRecipient”);
mSendText=(EditText)this.findViewById(R.id.sendText);
Log.i(“XMPPClient”、“mSendText=“+mSendText”);
mList=(ListView)this.findViewById(R.id.listMessages);
Log.i(“XMPPClient”,“mList=“+mList”);
setListAdapter();
//用于获取xmpp设置的对话框
mDialog=新设置对话框(此);
新建MyTask().execute();
//设置侦听器以显示“设置”对话框
按钮设置=(按钮)this.findViewById(R.id.setup);
setup.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
新建MyTask().execute();
}
});
//设置侦听器以发送聊天文本消息
按钮发送=(按钮)this.findViewById(R.id.send);
send.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
字符串to=mRecipient.getText().toString();
字符串text=mSendText.getText().toString();
Log.i(“XMPPClient”,“发送文本[“+text+”]到[“+to+”]”);
Message msg=新消息(收件人,Message.Type.chat);
msg.setBody(文本);
((org.jivesoftware.smack.XMPPConnection)连接);
messages.add((org.jivesoftware.smack.XMPPConnection)connection.getUser()+“:”;
消息。添加(文本);
setListAdapter();
}
});
}
/**
*当与XMPP服务器建立连接时,由设置对话框调用
*
*@param连接
*/
公共连接
(xmppc)连接
连接){
这个连接=连接;
if(连接!=null){
//添加数据包侦听器以获取发送给我们的消息
PacketFilter=newmessagetypefilter(Message.Type.chat);
((连接)连接).addPacketListener(新的PacketListener(){
公共无效处理数据包(数据包){
消息消息=(消息)数据包;
if(message.getBody()!=null){
String fromName=StringUtils.parseBareAddress(message.getFrom());
Log.i(“XMPPClient”,“从[“+fromName+”]”获取文本[“+message.getBody()+”];
messages.add(fromName+“:”);
messages.add(message.getBody());
//将传入消息添加到列表视图
mHandler.post(新Runnable(){
公开募捐{
setListAdapter();
}
});
}
}
},过滤器);
}
}
私有void setListAdapter
() {
ArrayAdapter=新的ArrayAdapter(此,
R.layout.multi_line_list_项目,
信息);
mList.setAdapter(适配器);
}   
}

这是我的任务课

private MainActivity<XMPPConnection> MainActivity;
private XMPPConnection setConnection;

@Override
protected String doInBackground(String... params) {
    String host = "web.vlivetech.com";                   //getText(R.id.host);                                 
    String port = "5222";                  //                                            
    String service = "web.vlivetech.com";// getText(R.id.service);                                      
    String username ="has12345"; //  getText(R.id.userid);         //                                  
    String password = "123";// getText(R.id.password);      //                                      

    // Create a connection
        ConnectionConfiguration connConfig =
                new ConnectionConfiguration(host, Integer.parseInt(port), service);
        XMPPConnection connection = new XMPPConnection(connConfig);

        try {
            connection.connect();
            Log.i("XMPPClient", "[SettingsDialog] Connected to " + connection.getHost());
        } catch (XMPPException ex) {
            Log.e("XMPPClient", "[SettingsDialog] Failed to connect to " + connection.getHost());
            MainActivity.setConnection(null);
        }
        try {
            connection.login(username, password);
            Log.i("XMPPClient", "Logged in as " + connection.getUser());

            // Set the status to available
            Presence presence = new Presence(Presence.Type.available);
            connection.sendPacket(presence);
            **MainActivity.setConnection(connection);**
        } catch (XMPPException ex) {
            Log.e("XMPPClient", "[SettingsDialog] Failed to log in as " + username);
            MainActivity.setConnection(null);
        }
    return null;
}

private String getText(int id) {
        EditText widget = (EditText) this.findViewById(id);
        return widget.getText().toString();
    }

    private EditText findViewById(int id) {
        // TODO Auto-generated method stub
        return null;
    }

}
private main活动main活动;
私有XMPPConnection-setConnection;
@凌驾
受保护的字符串doInBackground(字符串…参数){
String host=“web.vlivetech.com”;//getText(R.id.host);
字符串端口=“5222”;//
String service=“web.vlivetech.com”;//getText(R.id.service);
字符串username=“has12345”///getText(R.id.userid);//
String password=“123”///getText(R.id.password);//
//创建连接
连接配置CONNCONCONFIG=
新的连接配置(主机、Integer.parseInt(端口)、服务);
XMPPConnection连接=新的XMPPConnection(connconconfig);
试一试{
connection.connect();
Log.i(“XMPPClient”,连接到“+connection.getHost()”的“[SettingsDialog]”;
}捕获(XMPPException-ex){
Log.e(“XMPPClient”,“[SettingsDialog]无法连接到”+connection.getHost());
MainActivity.setConnection(空);
}
试一试{
连接。登录(用户名、密码);
Log.i(“XMPPClient”,“以“+connection.getUser()身份登录”);
//将状态设置为“可用”
状态=新状态(Presence.Type.available);
连接。发送数据包(存在);
**MainActivity.setConnection(连接)**
}捕获(XMPPException-ex){
Log.e(“XMPPClient”,“[SettingsDialog]以“+用户名”登录失败);
MainActivity.setConnection(空);
}
返回null;
}
私有字符串getText(int-id){
EditText小部件=(EditText)this.findViewById(id);
返回widget.getText().toString();
}
私有EditText findViewById(内部id){
//TODO自动生成的方法存根
返回null;
}
}
当我调试代码时,这将获得连接值,但在这一行终止MainActivity.setConnection(连接) 现在我做错了什么

getText(int host)

主机、端口、服务、用户名和密码返回null。这不会带你走多远。

private main活动main活动
main活动是一个活动类是的,它是一个主要活动类!此实例化的
MainActivity
在哪里。如果你做到了,那就做吧