File f = new File(fullPath);
long freeSpace = f.getFreeSpace();
我在Android應用程序中使用上面的代碼片段。 我的應用程序編譯良好,用sdk-15 jar。爲什麼NoSuchMethodError異常拋出如果API-jar有這種方法和實現
Android手機在哪裏運行應用程序是升級Froyo
我獲得以下運行時錯誤
java.lang.NoSuchMethodError: java.io.File.getFreeSpace
我擡頭的文檔的getFreeSpace(),並自API-9,它說。 據我所知froyo符合API-8(和以上,我猜?) 所以我知道(但不太明白),我不能在平臺froyo上調用此函數,但我可以在平臺上調用它上述API-8
所以我的問題/模糊性是這樣的
考慮到應用程序編譯完全沒有問題,我會承擔這一職能f.getFreeSpace()和它的實現提供API-15的罐子我正在使用。 當我的應用程序使用API-15的jar文件進行編譯時,爲什麼android會拋出運行時異常,並且它應該在jar中實現getFreeSpace()?如果API-15 jar中的實現存在,爲什麼平臺Froyo-API-8會造成問題? ?
的東西失去了從早期重新設計的一部分,並不總是api8,這就是爲什麼 – njzk2
以及你如何預計froyo會知道api 15? – njzk2
你或多或少地回答了你自己的問題。'getFreeSpace'是在API-9中引入的,並且在API-8上出現錯誤,該錯誤比此更早。您在API-15中編譯它的事實是無關緊要的,因爲運行時的API級別是系統上可用的任何級別。 –