Сначала убедитесь, что minification включен в app/build.cradle
:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
debug {
signingConfig signingConfigs.config
}
}
Если это не решит проблему, включите multidex build для вашего приложения.
Не возможный на Unix и производных. Возвращенная информация о статусе выхода состоит из двух 8-разрядных полей, один содержащий статус выхода и другой содержащий информацию о причине смерти (0 подразумевающих организованных выходов под программным управлением, другие значения, указывающие, что сигнал уничтожил его, и указание, было ли ядро выведено).
В современном Windows сама ОС и консольная оболочка по умолчанию (CMD.EXE
), принимают и показывают коды выхода, по крайней мере, всюду по целому диапазону 32-разрядных целых чисел со знаком. Выполнение Вашего примера выше в CMD.EXE
дает коды выхода, которые Вы попросили:
> java ExitCode 2
> echo %errorlevel%
2
> java ExitCode 128
> echo %errorlevel%
128
> java ExitCode 255
> echo %errorlevel%
255
> java ExitCode 256
> echo %errorlevel%
256
> java ExitCode 65536
> echo %errorlevel%
65536
Windows действительно не имеет понятия сигналов Unix, и при этом это не пытается угнать код выхода для добавления дополнительной информации, поэтому пока оболочка (или независимо от того, что программа заканчивает тем, что читала, код выхода) не делает этого также, необходимо возвратить коды выхода, которые Вы возвратили. К счастью, программы, которые используют время выполнения Microsoft C (включая все программы, скомпилированные с Visual C++ MS), сохраняют код выхода, как от выхода из процессов.
Windows имеет намного больше кодов выхода, более чем 14 000. (Я уверен, что Вы часто видели некоторых из них на Вашем собственном экране).
Здесь прибывает: