0

アプリケーションの 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();
     }
 }
4

1 に答える 1

0

これは、コードの他の場所にある別の問題の単なる兆候であることが判明しました。プロジェクトに固有すぎて、ここで説明する価値はありません...

ここで根本的な原因について考えてくれてありがとう。

于 2013-07-24T06:27:11.253 に答える