19 ноября 2012

Новый NDK 8c. Проблемы.

Новый, невероятно классный NDK для android от Google с поддержкой clang3.1 оказался не без изъяна. Что очень меня опечалило. Но к счастью это Open Source и большинство проблем можно поправить в уже установленном NDK.

Скажу об этом сразу, если что-то у вас поломалось другое, то поищите ответ тут. Все что меня беспокоило уже было решено именно там.

Все исходники постоянно компилируются: решение было найдено тут.

Патч изменяет единственную строчку 289 в build/core/definitions.mk с

$1: $$(__ndk_file_dir)

на 

$1: | $$(__ndk_file_dir)

Команда ndk-build выдает странную ошибку:

Invalid attribute name: android:name
/home/plambir/.android/android-ndk/build/gmsl/__gmsl:512: *** non-numeric second
 argument to `wordlist' function: ''.  Stop.
Решение простое, нужно переместить строчку <uses-sdk android:minSdkVersion="8"/> в AndroidManifest.xml в самое начало манифеста (сделать первым вложенным тегом, тега manifest).

При использование clang компилятор ругается на `-funswitch-loops`: решение было найдено тут. И то, что оно из себя представляет лучше посмотреть по этому диффу

Вроде бы все. Несмотря на все сложности с переездом на новый NDK, это того стоит, clang классный. Да и другие изменения тоже не хуже.