2011-07-07 158 views
0

我爲我的公司編寫了一個Android應用程序,並且由於它對我運行良好,所以出現了一些崩潰報告以及我從未有過的錯誤。 一個我不知道如何解決的是服務中的java.lang.verifyError。在某些設備上發生java.lang.VerifyError

其崩潰的行是:

String post_request = ConnectionHelper.getTicketRequestJsonString(true, ticketIdsToDownload); 

ConnectionHelper是僅包含返回字符串靜態函數的類。我能做些什麼來解決這個問題?

編輯:如果有益我會後一些代碼,而不是想着我運行到「安全性問題」

public static String getTicketRequestJsonString(boolean details, List<String> ticketIds){ 
    String ticketString = "tickets:["; 
    int count = ticketIds.size() - 1; 
    for (int i = 0; i <= count; i++){ 
     String s = ticketIds.get(i); 
     ticketString += s 
     ticketString += i != count ? "," : "]"; 
    } 
    return ticketString; 
} 
+0

java.lang.VerifyError的doc說這個「當」驗證器「檢測到一個類文件雖然格式良好,但包含某種內部不一致或安全問題時拋出。」所以你可能需要發佈更多的代碼給人們來幫助你。 –

+0

你在程序中使用外部庫嗎?特別是,你是從ConnectionHelper.getTicketRequestJsonString方法引用任何外部庫嗎?看到這裏 - http://stackoverflow.com/questions/668788/android-java-lang-verifyerror。 – Perception

+0

什麼是錯誤信息? –

回答

0

當Android的嘗試加載指的事情是不是一類時發生VerifyError可用。在Android 2.1設備上運行時,會加載一個引用Android 3.0類的類。

What can I do to fix the problem?

確定具體不能加載,然後確定如何處理該問題。例如,有一些技巧可以避免在Android 2.1設備上加載Android 3.0類,同時仍然在Android 3.x設備上使用Android 3.0類。

+0

盡你可能看到,這個類的ConnectionHelper與Android SDK本身無關。此外,我沒有使用android庫來獲得更高的API級別,然後我的構建級別 –

+0

@Rafael T:「正如你所見」 - 不,我看不到,因爲你距離數千英里,而且你的顯示器已經打開錯的方向。如果你認爲你把整個課堂粘貼到你的問題上,你就錯了。 「另外我沒有使用android庫來獲取更高的API級別,然後我的構建級別」 - 這並不重要。重要的是什麼設備運行你的應用程序,如果你正在使用這些設備上不存在的類。 – CommonsWare

+0

抱歉,因爲「你可以看到」。我認爲stackTrace指向不存在的Class,並指向ConnectionHelper。 –

0

我在這裏有同樣的問題;並最終發現受影響的班級使用

try { 
localIP = InetAddress.getLocalHost().getHostAddress(); 
} catch (NetworkOnMainThreadException ex) {   
} 

此失敗與Android 2.3上的VerifyError。

移除使用NetworkOnMainThreadException,它再次在2.3上工作。

相關問題