0

我正在尝试在 64 位 Ubuntu 10.04.4 桌面上为 Nexus 7 wifi (full_grouper-userdebug) 构建 android-4.3_r1.1 (JWR66Y) android。我在make -j4步骤中收到一条错误消息,看起来像

vendor/nvidia/grouper/keymaster/keymaster_grouper.cpp:39:29: fatal error: utils/UniquePtr.h: No such file or directory

我确实下载了专有的二进制文件,如此所述。为什么会发生此错误?

4

4 回答 4

2

看来UniquePtr.h已移至 libnativehelper/include/nativehelper/ 文件夹。为了让编译器找到它,您需要编辑两个文件:

首先编辑makefilevendor/nvidia/grouper/keymaster/Android.mk并像这样插入libnativehelper/include行:

LOCAL_C_INCLUDES := \
    libcore/include \
    libnativehelper/include \
    external/openssl/include \
    $(LOCAL_PATH)/../security/tf_sdk/include

然后编辑vendor/nvidia/grouper/keymaster/keymaster_grouper.cpp,转到第 39 行并更改包含如下:

//#include <utils/UniquePtr.h>
#include <nativehelper/UniquePtr.h>

然后运行您make -j4或您使用的任何数字,它应该编译得很好。它对我有用。

于 2013-10-14T20:12:31.253 回答
0

我找到了一个修复程序(不确定它是否“安全”,但设备现在可以正常启动和运行):

我搜索了 UniquePtr.h 并在另一个文件夹中找到它并将其复制过来。因此,转到 AOSP 调用的 WORKING_DIRECTORY 并执行

cp libnativehelper/include/nativehelper/UniquePtr.h out/target/product/grouper/obj/SHARED_LIBRARIES/keystore.grouper_intermediates/utils/

接着

make -j4

再次。

于 2013-10-04T16:46:53.470 回答
0

由于您的 out/ 目录可能会被清理,因此将包含目录添加到 vendor/nvidia/grouper/keymaster/Android.mk 的 LOCAL_C_INCLUDES 变量会更安全

另一件事是我的 4.3_r2.1 AOSP 源代码中的 libnativehelper/include/nativehelper/ 中没有 UniquePtr.h,而是在 libcore/include 中

于 2013-10-05T07:15:41.000 回答
0

我遇到了为 4.4 (KRT16S) 构建石斑鱼的问题。有一个 lib/core/utils/UniquePtr.h 可以工作。libnativehelper 中的那个现在拿起一个 c++ 算法文件。

使用 lib/core 中的那个,检查 keymaster_grouper.cpp 中的包含路径是否正确

很难相信这曾经编译过。

于 2013-12-03T04:32:03.597 回答