2014-10-22 2 views
3

есть этот вопрос и ответ:Является ли утверждение надежным на андроиде или нет?

Can I use assert on Android devices?

Однако, я наткнулся на это:

http://tools.android.com/recent/androidstudio045released

, который говорит:

Некоторые новые проверки пуха, и в в частности, который использует использование ключевого слова assertion. Это не работает надежно на устройствах, и вы должны использовать BuildConfig.DEBUG вместо условных проверок.

Ключевое слово «assertion» отсутствует, существует только ключевое слово «assert», поэтому я не уверен, что даже сделать из этой заметки о выпуске.

Во всяком случае, то, что мне интересно, это:

Если я по первой ссылке и сделать:

adb shell setprop debug.assert 1 

перед установкой приложения на устройстве, и скомпилировать приложение, как отлаживать с утверждениями они надежно ожидали, что они будут работать на всех устройствах? Или, должен ли я поверить в примечания к выпуску для Android Studio 0.4.5?

+0

Я нашел это сейчас, и похоже, что они действительно могут быть ненадежными? https://code.google.com/p/android/issues/detail?id=65183 – Mark

ответ

3

Я думаю, что это трудность получения утверждений для работы, на которые ссылается проверка ворса. Обходной путь, к которому вы привязаны, официально не поддерживается, и рекомендуется использовать условные проверки, как рекомендует проверка на линт.

Обходной путь для включения утверждений будет работать только для корневых устройств, и я не знаю, будет ли он работать над АРТ. В https://code.google.com/p/android/issues/detail?id=17324 больше обсуждений, суть которых заключается в том, что утверждения никогда не были предназначены для поддержки Dalvik.

0

Утверждения ненадежны на Android. В среде исполнения нет надежного механизма для их включения, и разработчики продолжают отказываться от поддержки. См. Вопросы 175697, 65183, 36786 и 17324.

Чтобы надежно использовать инструкции assert, вам необходимо будет translate the code, например. перед его компиляцией.

Смежные вопросы