error未能链接服务器,NullPointerError:无法连接到服务器

我正在尝试连接到我的XAMPP服务器并使用以下类与MySQL数据库进行交互.但是,错误指出我在该行收到NullPointerException:

result = imService.createNewGroup(newGroupName);

在CreateGroup类中.应该注意的是,在用户将文本输入到对话框中并且从那里开始服务之后,也会立即调用CreateGroup类.我对服务和网络连接相当新,但有些东西我错过了应该允许在尝试发送.createGroup命令之前至少验证服务是否已连接?

CreateGroup类:

public class CreateGroup extends Activity {

private static final String SERVER_RES_RES_SIGN_UP_SUCCESFULL = "1";

private static final String SERVER_RES_SIGN_UP_USERNAME_CRASHED = "2";

private Manager imService;

private Handler handler = new Handler();

String newGroupName;

public ServiceConnection mConnection = new ServiceConnection() {

public void onServiceConnected(ComponentName className, IBinder service) {

imService = ((MessagingService.IMBinder) service).getService();

}

public void onServiceDisconnected(ComponentName className) {

imService = null;

Toast.makeText(CreateGroup.this, R.string.local_service_stopped,

Toast.LENGTH_SHORT).show();

}

};

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

bindService(new Intent(CreateGroup.this, MessagingService.class),

mConnection, Context.BIND_AUTO_CREATE);

// Getting intent and info from the dialog

Intent i = getIntent();

Bundle extras = i.getExtras();

newGroupName = extras.getString("groupName");

Thread thread = new Thread() {

String result = new String();

@Override

public void run() {

// Send group name to the messaging

// service

try {

result = imService.createNewGroup(newGroupName);

} catch (NullPointerException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Log.d("problem", "The value of result is " + result.toString());

handler.post(new Runnable() {

@Override

public void run() {

if (result == null) {

Toast.makeText(getApplicationContext(),

"It's null, not working", Toast.LENGTH_LONG)

.show();

}

if (result != null

&& result

.equals(SERVER_RES_RES_SIGN_UP_SUCCESFULL)) {

Toast.makeText(getApplicationContext(),

R.string.signup_successfull,

Toast.LENGTH_LONG).show();

// showDialog(SIGN_UP_SUCCESSFULL);

} else if (result != null

&& result

.equals(SERVER_RES_SIGN_UP_USERNAME_CRASHED)) {

Toast.makeText(getApplicationContext(),

R.string.signup_username_crashed,

Toast.LENGTH_LONG).show();

// showDialog(SIGN_UP_USERNAME_CRASHED);

} else // if

// (result.equals(SERVER_RES_SIGN_UP_FAILED))

{

Toast.makeText(getApplicationContext(),

R.string.signup_failed, Toast.LENGTH_LONG)

.show();

// showDialog(SIGN_UP_FAILED);

}

}

});

}

};

thread.start();

}

"createGroup"方法的服务器案例:

case "createGroup":

$SQLtest = "insert into groups(groupName, uniqueGroup, createTime)

VALUES('TestGroup', 1234567891, NOW())";

error_log("$SQLtest", 3 , "error_log");

if($result = $db -> query($SQLtest))

{

$out = SUCCESSFUL;

}

else

{

$out = FAILED;

}

break;

Messaging Service和createGroup方法:

public class MessagingService extends Service implements Manager, Updater {

// private NotificationManager mNM;

public static String USERNAME;

public static final String TAKE_MESSAGE = "Take_Message";

public static final String FRIEND_LIST_UPDATED = "Take Friend List";

public static final String MESSAGE_LIST_UPDATED = "Take Message List";

public ConnectivityManager conManager = null;

private final int UPDATE_TIME_PERIOD = 15000;

private String rawFriendList = new String();

private String rawMessageList = new String();

SocketerInterface socketOperator = new Socketer(this);

private final IBinder mBinder = new IMBinder();

private String username;

private String password;

private boolean authenticatedUser = false;

// timer to take the updated data from server

private Timer timer;

private StorageManipulater localstoragehandler;

private NotificationManager mNM;

public class IMBinder extends Binder {

public Manager getService() {

return MessagingService.this;

}

}

@Override

public void onCreate() {

mNM = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

localstoragehandler = new StorageManipulater(this);

// Display a notification about us starting. We put an icon in the

// status bar.

// showNotification();

conManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

new StorageManipulater(this);

// Timer is used to take the friendList info every UPDATE_TIME_PERIOD;

timer = new Timer();

Thread thread = new Thread() {

@Override

public void run() {

Random random = new Random();

int tryCount = 0;

while (socketOperator.startListening(10000 + random

.nextInt(20000)) == 0) {

tryCount++;

if (tryCount > 10) {

// if it can't listen a port after trying 10 times, give

// up...

break;

}

}

}

};

thread.start();

}

@Override

public IBinder onBind(Intent intent) {

return mBinder;

}

@Override

public String createNewGroup(String groupName) throws NullPointerException, UnsupportedEncodingException {

String params = "action=createGroup";

String result = socketOperator.sendHttpRequest(params);

return result;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值