Android «отлаживаемое» значение по умолчанию - PullRequest
22 голосов
/ 18 апреля 2011

Я пытаюсь получить значение атрибута отладки приложения из кода:

packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);           
int flags = packageInfo.applicationInfo.flags;
isDebugMode = (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;

И я заметил, что когда атрибут отладки не указан в манифесте, этот код определяет его как true. И документация говорит, что по умолчанию это ложно.

Что не так?

1 Ответ

73 голосов
/ 18 апреля 2011

Из SDK Tools : (SDK Tools, редакция 8 (декабрь 2010 г.))

Поддержка истинной отладочной сборки. Разработчикам больше не нужно добавлять android:debuggable атрибут для <application> тег в манифесте - инструменты сборки добавляют атрибут автоматически . В Eclipse / ADT, все инкрементные сборки предполагаются отладочные сборки , поэтому инструменты вставляются android:debuggable="true". когда экспорт сборки подписанного релиза, инструменты не добавляют атрибут . В Ant команда ant debug автоматически вставляет атрибут android: debuggable = "true" , в то время как ant release нет. Если android: debuggable = "true" вручную установить, тогда ant release будет на самом деле отладочная сборка, а не релиз строить.

...