Я использую простую условную проверку Build.Version.SDK_INT в методе onCreate моего приложения (код ниже), чтобы предотвратить включение строгого режима на любой ОС Android раньше, чем 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 для более низких версий платформы] (http://stackoverflow.com/a/4623606/2558882) – Vikram
Спасибо, это похоже на хорошее исправление, но поскольку я не поддерживаю pre 2.0, я бы предпочел выяснить, какие изменения вызвали эту ошибку, и устранить эту проблему. Я не хочу добавлять сложность для чего-то, что раньше работало, и, вероятно, имеет простое исправление. – sleeke
Быстрое пояснение: Является ли это ошибкой во время компиляции или ошибкой на устройстве при попытке запустить приложение? Первоначально я думал о ошибке устройства, но это сообщение об ошибке больше похоже на ошибку компилятора. – JesusFreke