Включите uuid.h в проект Android NDK

Я портирую C-программу на Android с помощью NDK. Программа использует uuid.h или uuid/uuid.h зависимости от того, какая из них доступна. Когда я компилирую программу, выдает сообщение об ошибке uuid.h: No such file or directory .

Я новичок в NDK, поэтому я не совсем уверен, в чем проблема. Я использую cygwin для Windows; У компьютера нет библиотеки uuid.h или Android, это не поддерживает? Есть ли обходной путь – могу ли я каким-либо образом включить его в настройки компилятора?

Наконец, программа использует только библиотеку:

 char *s; uuid_t uu; uuid_create(&uu, NULL); uuid_to_string(&uu, &s, 0); 

Возможно, я мог бы подражать этому поведению своим собственным C-кодом?

Спасибо за любую помощь заранее!

uuid.h не является частью NDK. Вы можете проверить, запустив find /opt/android-ndk-r8b/ -name uuid.h

Вероятно, вы можете извлечь код из AOSP. Я нашел external/e2fsprogs/lib/uuid/uuid.h в основной ветке.

Статья UUID и Linux: все, что вам нужно знать, предполагает использование

 $ cat /proc/sys/kernel/random/uuid eaf3a162-d770-4ec9-a819-ec96d429ea9f 

Команда действительно работает в Android, хотя ваша программа должна будет прочитать этот файл ( /proc/sys/kernel/random/uuid ), а не вызвать библиотеку.

Итак, если вы берете String getStringFromFile(String filePath) здесь ,

 getStringFromFile("/proc/sys/kernel/random/uuid") 

Вернет uuid, который вы можете, например, распечатать в журнале:

 D/~~~ ( 5065): uuid=418ebd25-4f6e-4431-b31e-784703ea6093 

(Запускал его на Samsung GS4)

Intereting Posts