2012-10-09 2 views
1

for 루프 및 로그 인쇄 직후에 삽입 함수를 호출 할 때 UnknownFormatConversionException이 발생합니다. 해당 예외가 발견되었지만 제거하는 방법은 무엇입니까? 나는 여기에 android 데이터베이스에 삽입시 예외

try { 
     List<Status> timeline = 
      ((YambaApp) getApplication()).getTwitter().getPublicTimeline(); 
     for (Status status : timeline) { 
      Log.d(TAG, String.format("%s: %s", status.user.name, 
        status.text)); 
      statusData.insert(status); 

      } 
    } catch (TwitterException e) { 
     Log.d(TAG,"Failed to access twitter service ",e); 
    } catch(NullPointerException a){ 
     Log.d(TAG,"Pref had been changed and twitter object is null",a); 
    } catch (UnknownFormatConversionException u){ 
     Log.d(TAG,"exception "+ u); 
    } 

가 삽입 함수의 코드이며, 이유는 무슨 일이 있었는지 알고 do'nt : 슬로우 된 예외의 전체 스택 추적 여기

public void insert(Status status){ 
    db=dbHelper.getWritableDatabase(); 

    ContentValues value= new ContentValues(); 
    //converting BigInteger to String 
    BigInteger bi=status.id; 
    String status_id= new String(bi.toByteArray()); 


    value.put(C_ID, status_id); 
    value.put(C_CREATED_AT, status.createdAt.getTime()); 
    value.put(C_TEXT, status.user.name); 
    value.put(C_TEXT, status.text); 

    db.insert(TABLE, null, value); 
} 

됩니다

10-10 06:05:22.648: E/AndroidRuntime(627): FATAL EXCEPTION: IntentService[RefreshService] 
10-10 06:05:22.648: E/AndroidRuntime(627): java.util.UnknownFormatConversionException: Conversion: i 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.util.Formatter$FormatToken.unknownFormatConversionException(Formatter.java:1397) 
10-10 06:05:22.648: E/AndroidRuntime(627): at  java.util.Formatter$FormatToken.checkFlags(Formatter.java:1334) 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.util.Formatter.transform(Formatter.java:1440) 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.util.Formatter.doFormat(Formatter.java:1079) 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.util.Formatter.format(Formatter.java:1040) 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.util.Formatter.format(Formatter.java:1009) 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.lang.String.format(String.java:1998) 
10-10 06:05:22.648: E/AndroidRuntime(627): at java.lang.String.format(String.java:1972) 
10-10 06:05:22.648: E/AndroidRuntime(627): at com.example.yamba.StatusData$DbHelper.onCreate(StatusData.java:59) 
10-10 06:05:22.648: E/AndroidRuntime(627): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:165) 
10-10 06:05:22.648: E/AndroidRuntime(627): at com.example.yamba.StatusData.insert(StatusData.java:32) 
10-10 06:05:22.648: E/AndroidRuntime(627): at com.example.yamba.RefreshService.onHandleIntent(RefreshService.java:32) 
10-10 06:05:22.648: E/AndroidRuntime(627): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 
10-10 06:05:22.648: E/AndroidRuntime(627): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-10 06:05:22.648: E/AndroidRuntime(627): at android.os.Looper.loop(Looper.java:137) 
10-10 06:05:22.648: E/AndroidRuntime(627): at android.os.HandlerThread.run(HandlerThread.java:60) 
10-10 06:05:22.968: W/IInputConnectionWrapper(627): showStatusIcon on inactive InputConnection 
+4

음, 예외는 무엇입니까? –

+2

스택 추적을 게시하십시오. – jjm

+0

UnknownFormatConversionException : 변환 : i –

답변

1

insert() 방법 변경시

String status_id= new String(bi.toByteArray()); 
(210)

String status_id = bi.toString(); 

bi.toByteArray() 당신에게 BigInteger의 이진 표현을 포함한 바이트 배열을 반환하는 것입니다 호출. 이 방법을 제대로 수행하는 방법으로 String으로 변환 할 수 없습니다. 제공된 toString() 방법을 BigInteger으로 사용하면됩니다.

관련 문제