1
我正在處理與服務器通信並接收數據流,這就像60-80k符號的應用程序。所以我拆分'該字符串和計算流劃分成片,當我得到了流的類型我像這樣創建類的實例:安卓空指針 - 例外無法找到解決方案
BasePacket packet=null; // this is the base packet
if(packetType=1)
startPacket packet = new startPacket(params) // startPacket class extends BasePacket
if(packetType=2)
endPacket packet = new endPacket(params) // endPacket class extends BasePacket
......
在startPacket
我創建實例userPacket
延伸BasePacket
太:
userPacket user; // in startPacket
我有另一類是RPCCommunicator
其中包括我需要與服務器進行通信的所有方法。
在RPCCommnicator
我:
userPacket user;
startPacket startP;
.......
這裏是我的問題... 在RPCCOmmunicator
我有這樣的方法:
private static Integer localUserIdByServerUserId(int serverUserId, String serverName,Context context){
try {
dbHelper = new DataBaseHelper(context, "opa_sys_tpl.sqlite", null, 1);
dbHelper.checkDatabase("opa_sys_tpl.sqlite");
dbHelper.copyDataBase("opa_sys_tpl.sqlite");
} catch (IOException e) {
e.printStackTrace();
}
dbHelper.getDatabase();
String query = "SELECT id FROM users WHERE objectId = "+serverUserId+" AND serverName = '"+serverName+"' LIMIT 1";
ArrayList<String> result = new ArrayList<String>();
cursor = dbHelper.executeSQLQuery(query);
cursor.moveToFirst();
while(!cursor.isAfterLast()) {
result.add(cursor.getString(cursor.getColumnIndex("id")));
cursor.moveToNext();
}
Log.i("result ","Result : "+result.toString());
Log.i("CURSOR ","Cursor Position : "+cursor.getPosition());
Integer uuid = Integer.parseInt(result.get(cursor.getColumnIndex("id")));
Log.w("localUSerByIdServerUserId","LocalUserByIdServerUserId result : "+uuid);
cursor.close();
return uuid;
}
,我稱其爲類似的StartPacket這個:
int uuId = rpc.lUserIdByServerUserId(userId,newServerName,context);
And the NullPointer它拋出最後一行的異常,我找不到如何解決它。我使用一個輔助類爲我的數據庫,所以我不認爲問題在那裏,但這裏是一個鏈接到我的DataBaseHelper.class代碼:DatabaseHelper.class。
所以在此先感謝!
其實我做到了,但找不到解決方案..我知道很難幫助我,因爲我無法複製和粘貼所有代碼,但我不想讓別人爲我寫。 ..我只是需要一些建議可能是什麼問題... –