Сегодня доделал проект по запуску статического анализатора кода для Android-проектов и в процессе настройки нашел несколько подводных камней по запуску Android SDK на Centos 7. Вобственно все началось с ошибки которую вынес в заголовок:
java.io.IOException: Cannot run program "/home/infer/android-sdk-linux/build-tools/23.0.3/aapt": error=2, Нет такого файла или каталога
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at com.android.builder.png.AaptProcess$Builder.start(AaptProcess.java:163)
at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:106)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:203)
at java.lang.Thread.run(Thread.java:745)
Если попытаться запустить aapt напрямую из консоли, то мы получим ошибку:
$ ./aapt
bash: ./aapt: /lib/ld-linux.so.2: bad ELF interpreter: Нет такого файла или каталога
Лечится установкой i686 версии пакета glibc
# yum install glibc.i686
Ну и прицепом два аналогичных случая для этого же приложения:
$ ./aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
# yum install libzip.i686
$ ./aapt: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
# yum install libgcc.i686