5

NDK を使用して C プログラムを Android に移植しています。プログラムは、利用可能なライブラリに応じてuuid.hまたはライブラリを使用します。uuid/uuid.hプログラムをコンパイルすると、エラーメッセージが表示されますuuid.h: No such file or directory

私は NDK を初めて使用するので、何が問題なのか完全にはわかりません。Windows で cygwin を使用しています。コンピュータにuuid.hライブラリがないか、Android がサポートしていませんか? 回避策はありますか?コンパイラの設定に何らかの方法で含めることはできますか?

最後に、プログラムは次のようにライブラリのみを使用します。

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

おそらく、この動作を自分の C コードでエミュレートできますか?

事前に助けてくれてありがとう!

4

3 に答える 3

7

uuid.hNDK の一部ではありません。実行して確認できますfind /opt/android-ndk-r8b/ -name uuid.h

おそらく AOSP から必要なコードを引き出すことができます。external/e2fsprogs/lib/uuid/uuid.hマスターブランチで見つけました。

于 2012-08-09T17:08:12.947 に答える
1

記事UUIDs and Linux: Everything you need to know は、

$ 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 で実行)

于 2014-07-15T09:06:11.783 に答える