NDK_PROJECT_PATH=null

编译报错:
Build command failed.
Error while executing process /home/yuneec/Android/Sdk/ndk-bundle/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/app/src/main/jni/Android.mk NDK_APPLICATION_MK=/app/src/main/jni/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-19 NDK_OUT=/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/app/build/intermediates/ndkBuild/debug/lib /app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libdl-jni.so}
[armeabi-v7a] Compile++ thumb: dl-jni <= com_yuneec_android_ob_gallery_FileDownloader.cpp
[armeabi-v7a] Compile++ thumb: dl-jni <= dwf_client_api.cpp
[armeabi-v7a] Compile++ thumb: dl-jni <= dwf_log.cpp
[armeabi-v7a] Compile++ thumb: dl-jni <= dwf_packet.cpp
In file included from /app/src/main/jni/gallery/dwf_packet.cpp:9:0:
/app/src/main/jni/gallery/dwf_packet.h:44:69: error: ‘socklen_t’ has not been declared
int pktSendto(int sockfd, int sendLen, sockaddr *peeraddr, socklen_t peeraddrLen);
^
/app/src/main/jni/gallery/dwf_packet.h:45:58: error: ‘socklen_t’ has not been declared
int pktRecvfrom(int sockfd, sockaddr *peeraddr, socklen_t peeraddrLen);
^
/app/src/main/jni/gallery/dwf_packet.cpp:326:5: error: ‘socklen_t’ has not been declared
socklen_t peeraddrLen)
^
/app/src/main/jni/gallery/dwf_packet.cpp: In member function 'int yuneec::CPacket::recv_peek(int, const void
, int)’:
/app/src/main/jni/gallery/dwf_packet.cpp:430:52: error: ‘recv’ was not declared in this scope
ret = recv(fd, (void *)buf, count, MSG_PEEK);
^
/app/src/main/jni/gallery/dwf_packet.cpp: At global scope:
/app/src/main/jni/gallery/dwf_packet.cpp:447:5: error: ‘socklen_t’ has not been declared
socklen_t *peeraddrLen)
^
make: *** [/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/dl-jni/dwf_packet.o] Error 1

解决方案:
更改ndk版本:File—>Project Structure—>SDK Location—>Android NDK location

请选择项目类型 (输入数字):1.x6871, 2.x6853, 3.x6860-V, 4.x6861-V 输入你的选择: 3 请选择版本类型 (输入数字):1. user_root, 2. userdebug, 3. user 输入你的选择: 2 请选择编译模块 (输入数字):1. vnd, 2.sys, 3. prd, 4.tar_package, 5. all 输入你的选择: 1 =====x6860_h899_a1_v_tssi_64_armv82_infinix_vnd_tr_partition userdebug_2025-05-20-17-21-07===== x6860_h899_a1_v tran_projects/x6860/x6860_h899_a1_v/x6860.sh is not exists ===========================================Usage:================================================================== NAME: tran_setenv.sh SYNOPSIS source tran_setenv.sh <project or tssi_project> [single build] [bulid variant] [auto make] [enable log] [enable efuse] [TEE type] [DRAM VOL] [google key] [DRAM Temp] DESCRIPTION -h/help: show help information(usage) [project]: project or tssi_project name, MUST configure correctly [single build]: tssi must use, vnd sys prd full /work/chong.du/x6860/vnd [tssi_project]: tssi_32_ago_armv7_infinix tssi_32_ago_armv7_itel tssi_32_ago_armv7_tecno tssi_32_ago_infinix tssi_32_ago_tecno tssi_64_armv82_infinix tssi_64_armv82_itel tssi_64_armv82_tecno tssi_64_armv82_tecno_dolby tssi_64_infinix tssi_64_itel tssi_64_tecno tssi_t_64_armv82_wifi_infinix <build variant>: eng, userdebug, user, user_root <enable log>: mtklog, mobilelog, kom, logmuch <enable efuse>: efuse <enable tkdn>: tkdn_before, tkdn_after <enable kom: kom> <enable testkeys>: testkeys <enable googlekey>: use google testkey <TEE type>: microtrust(default), trustonic <DRAM VOL>: dram voltage: HV, NV, LV, FK, NULL(default) <DRAM Temp>:dram temperature, please key in a specific number. NULL(default) EXAMPLE EXAMPLE Tssi source source tran_setenv.sh tssi_32_infinix --It will make system eng compile environment source tran_setenv.sh tssi_32_infinix user --It will make system user compile environment source tran_setenv.sh r8_h3718_d vnd --It will configure eng compile environment, source tran_setenv.sh r8_h3718_d user prd --It Will configure user compile environment source tran_setenv.sh r8_h3718_d userdebug full mtklog efuse --It Will configure user-debug compile environment and enable mtklog and efuse features source tran_setenv.sh r8_h3718_d userdebug \e[1;31mprd\e[0m mtklog efuse microtrust DRAM_VOL=NV DRAM_TEMP=58 --It Will configure user-debug compile environment, enable mtklog and efuse features, choose MICROTRUST's TEE solution, config DRAM_VOL=NV and DRAM_TEMP=58 EXAMPLE Not Tssi source source tran_setenv.sh r8_h3718_d --It will configure eng compile environment source tran_setenv.sh r8_h3718_d user --It Will configure user compile environment source tran_setenv.sh r8_h3718_d userdebug mtklog efuse --It Will configure user-debug compile environment and enable mtklog and efuse features source tran_setenv.sh r8_h3718_d userdebug mtklog efuse microtrust DRAM_VOL=NV DRAM_TEMP=58 --It Will configure user-debug compile environment, enable mtklog and efuse features, choose MICROTRUST's TEE solution, config DRAM_VOL=NV and DRAM_TEMP=58 ===================================================================================================================
最新发布
05-21
### 正确配置编译环境及解决 `tran_setenv.sh` 中项目路径不存在的问题 在处理 `tran_setenv.sh` 脚本时,如果遇到项目路径不存在的错误,通常是因为脚本中定义的变量未正确指向实际存在的目录结构。以下是关于如何正确配置编译环境并解决该问题的具体说明: #### 1. **分析 `tran_setenv.sh` 的作用** `tran_setenv.sh` 是一种常见的 shell 脚本,用于设置编译环境中所需的环境变量和工具链路径。它可能涉及以下几个方面: - 定义项目的根目录。 - 设置交叉编译器路径。 - 配置目标架构的相关参数。 当执行此脚本时,如果出现“项目路径不存在”的提示,则表明某些关键路径未能被正确定位或初始化[^1]。 #### 2. **检查脚本中的路径定义** 打开 `tran_setenv.sh` 文件,查找类似以下的关键字: ```bash export PROJECT_ROOT="/path/to/project" export TOOLCHAIN_PATH="/path/to/toolchain" ``` 这些路径需要手动确认是否存在。如果没有指定绝对路径或者路径有误,则可能导致后续操作失败。 对于特定设备名称(如 `x6860_h899_a1_v_tssi_64_armv82_infinix vnd userdebug`),需验证其对应的硬件平台是否已映射到正确的构建选项下。 #### 3. **修复路径缺失问题** 假设当前工作目录为 `/home/user/projects/infinix`,可以尝试更新脚本内的路径声明如下: ```bash export PROJECT_ROOT=$(pwd)/infinix export BUILD_OUT=$PROJECT_ROOT/out/target/product/x6860_h899_a1_v_tssi_64_armv82_infinix/vnd/userdebug ``` 通过动态计算 `$PROJECT_ROOT` 值来减少硬编码带来的风险,并确保所有子目录均能正常访问[^2]。 #### 4. **加载必要的依赖项** 除了基础路径外,还需要关注其他外部依赖关系,比如 Python 库、CMake 或者 NDK 工具包版本兼容性等问题。例如,在 TensorFlow 开发场景下可能会碰到类似的模块导入异常情况[^5]。因此建议提前安装好所需软件组件后再继续下一步骤测试流程。 #### 5. **调试与验证** 完成以上调整之后重新运行脚本前先清理旧数据以免干扰新设定效果评估: ```bash rm -rf $BUILD_OUT/* source ./tran_setenv.sh make clean && make all ``` 最后观察终端输出是否有任何警告信息残留;若有则进一步排查直至完全消除为止。 --- ### 提供一段简单的 Shell 示例代码帮助理解过程 下面是一个简化版的例子展示如何灵活运用相对地址代替固定写法从而增强移植能力的同时也便于维护管理: ```bash #!/bin/bash # 自动检测当前位置作为基准点 BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" echo "Base Directory detected as: ${BASE_DIR}" # 构建相关联的目标产物存储位置 OUTPUT_DIR="${BASE_DIR}/output" if [[ ! -d "$OUTPUT_DIR" ]]; then mkdir -p "$OUTPUT_DIR" fi # 输出最终状态给用户参考反馈 printf "\nEnvironment setup completed.\nProject Root: %s\nOutput Path:%s\n" \ "$BASE_DIR" "$OUTPUT_DIR" ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值