我正在尝试在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
我确实下载了专有二进制文件,如here所述。为什么会发生这种错误?
答案 0 :(得分:2)
似乎 UniquePtr.h 已移至libnativehelper / include / nativehelper /文件夹。要让编译器找到它,您需要编辑两个文件:
首先编辑makefile vendor/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
或你使用的任何数字,它应该编译得很好。它确实适合我。
答案 1 :(得分: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
试。
答案 2 :(得分:0)
由于您的out /目录可能已清除,因此将include目录添加到vendor / nvidia / grouper / keymaster / Android.mk的LOCAL_C_INCLUDES变量会更安全
另一件事是我的4.3_r2.1 AOSP源代码中的libnativehelper / include / nativehelper /中没有UniquePtr.h,而是libcore / include
答案 3 :(得分:0)
我遇到了这个问题,为4.4(KRT16S)建造石斑鱼。有一个lib / core / utils / UniquePtr.h可以工作。 libnativehelper中的那个现在选择了一个c ++算法文件。
使用lib / core中的那个,检查keymaster_grouper.cpp中的包含路径是否正确
很难相信这个曾经编译过。