2011-09-20 5 views
1

저는 서버와 통신하고 60-80k 심볼과 같은 데이터 스트림을 수신하는 응용 프로그램에서 작업하고 있습니다. 그 문자열을 분리하고 계산 중입니다. 너무 BasePacket를 확장하는 내가 userPacket에 인스턴스를 생성 startPacket에서Android Null 포인터 예외가 솔루션을 찾을 수 없습니다.

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 
...... 

:하십시오 조각으로 스트리밍 I 스트림의 종류를 얻을 때이 같은 클래스의 인스턴스를 생성

userPacket user; // in startPacket 

내가 가진인 다른 클래스여기에는 서버와 통신하는 데 필요한 모든 메소드가 포함되어 있습니다. 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에 전화 해요 이 :

그리고 NullPointer 예외 마지막 줄에 던져 및 그것을 해결하는 방법을 찾을 수 없습니다. 내 데이터베이스에 대한 도우미 클래스를 사용하고 있으므로 문제가 거기에 있다고 생각하지 않지만 여기에 내 DataBaseHelper.class 링크가 있습니다. 코드 : DatabaseHelper.class.

미리 감사드립니다. 이 라인

int uuId = rpc.lUserIdByServerUserId(userId,newServerName,context); 

참으로 예외를 throw 라인을 경우

답변

3

, rpcnull해야합니다.

디버거를 사용하여 프로그램을 단계별로 실행하여 이유를 알아보십시오.

+0

사실 나는 그랬지만 해결책을 찾지 못했습니다. 나는 모든 코드를 복사하여 붙여 넣을 수 없기 때문에 나를 도와주기가 어렵다는 것을 알고 있습니다. 그러나 누군가 나를 위해 작성하지 않기를 바랍니다. .. 문제가 될 수있는 제안이 필요합니다 ... –

관련 문제