アプリケーションの onCreate メソッド (以下のコード) で Build.Version.SDK_INT の単純な条件付きチェックを使用して、2.3 より前の Android OS で厳密モードが有効にならないようにしています。最近までこれは正常に機能していましたが、プロジェクトを再ジグした後、次のエラーが表示されます。
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();
}
}