2013-01-22 98 views
0

我试图从https://github.com/rmtheis/android-ocr运行的翻译服务,并获得retreiving微软翻译API服务的结果,当下面的错误微软翻译API:错误检索翻译:无法解析“空”为整数

TranslatorBing(30659): Caught exeption in translation request. 

W/System.err(30659): java.lang.Exception: [microsoft-translator-api] Error retrieving translation : unable to parse 'null' as integer 

W/System.err(30659): at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:199) 

W/System.err(30659): at com.memetix.mst.translate.Translate.execute(Translate.java:61) 

W/System.err(30659): at edu.sfsu.cs.orange.ocr.language.TranslatorBing.translate(TranslatorBing.java:42) 

W/System.err(30659): at edu.sfsu.cs.orange.ocr.language.Translator.translate(Translator.java:49) 

W/System.err(30659): at edu.sfsu.cs.orange.ocr.language.TranslateAsyncTask.doInBackground(TranslateAsyncTask.java:58) 

W/System.err(30659): at edu.sfsu.cs.orange.ocr.language.TranslateAsyncTask.doInBackground(TranslateAsyncTask.java:1) 

W/System.err(30659): at android.os.AsyncTask$2.call(AsyncTask.java:185) 

W/System.err(30659): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 

W/System.err(30659): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 

W/System.err(30659): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 

W/System.err(30659): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 

W/System.err(30659): at java.lang.Thread.run(Thread.java:1019) 

W/System.err(30659): Caused by: java.lang.NumberFormatException: unable to parse 'null' as integer 

W/System.err(30659): at java.lang.Integer.parseInt(Integer.java:356) 

W/System.err(30659): at java.lang.Integer.parseInt(Integer.java:332) 

W/System.err(30659): at com.memetix.mst.MicrosoftTranslatorAPI.retrieveResponse(MicrosoftTranslatorAPI.java:158) 

W/System.err(30659): at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:196) 

W/System.err(30659): ... 11 more 

E/TranslateAsyncTask(30659): FAILURE 
+0

错误说明了一切:您的一个数据为空,因此无法解析 –

回答

0

在日志中:

NumberFormatException的:无法解析 '空' 为整数

意味着您试图将空值转换为整数。在将字符串值转换为整数之前,请检查它是否为空,并使用try/catch来处理NumberFormatException

int intnum=0; 
if (strvalue !=null && !"".equals(strvalue)){ 
    try { 
      int intnum = Integer.parseInt(strvalue); 

     } catch (NumberFormatException e) { 
      intnum=0; 
      System.out.println(e.getMessage()); 
     } 
} 
else{ 
intnum=0; 
}