0
我在我的應用程序的onCreate方法(代碼如下)上對Build.Version.SDK_INT使用了一個簡單的條件檢查,以防止在任何Android OS上啓用嚴格模式2.3。直到最近,這一直工作正常,但我的項目的重新夾具後,我收到以下錯誤:構建版本檢查在Android 2.2上不起作用Froyo
Could not find class 'android.os.StrictMode$ThreadPolicy$Builder', referenced from method com.myPackage.MyApp.onCreate
我聽說的方式類依賴性進行了評價,並從靜態分析加載的改變該類在Android 2.0中是一個「延遲加載」系統,但是由於我使用的是2.2,所以我認爲這並不奏效。我懷疑在我的項目結構中有其他地方導致了這個錯誤,但我對此感到不知所措。
這裏有沒有人有過類似的經歷,也許可以對此有所瞭解?任何幫助將受到感謝。
在此先感謝您的幫助!
請看下面我的代碼以供參考:
public class MyApp extends Application {
@Override
public void onCreate() {
// Set up strict mode
int buildInt = Build.VERSION.SDK_INT;
Log.d(LogTags.TRIGGER_CODE, String.format("Build is %d (%s)", buildInt, Build.VERSION.CODENAME));
if (buildInt >= 9) {
StrictMode.setThreadPolicy(new ThreadPolicy.Builder()
.detectCustomSlowCalls()
.detectNetwork()
.build());
StrictMode.setVmPolicy((new VmPolicy.Builder()
.detectAll()
.build()));
}
super.onCreate();
}
}
這應該會對您有所幫助:[StrictMode for lower platform versions](http://stackoverflow.com/a/4623606/2558882) – Vikram
謝謝,這似乎是一個很好的解決方案,但由於我不支持預2.0,我寧願計算出哪些更改導致此錯誤出現並解決該問題。我真的不想增加以前工作的複雜性,並且可能有簡單的修復。 – sleeke
快速說明:這是編譯時錯誤還是設備上的錯誤,當您嘗試運行該應用程序時?我最初認爲設備上的錯誤,但是這個錯誤消息看起來更像是一個編譯器錯誤。 – JesusFreke