用于Android原生项目的gradle build失败,"无法打开输出文件"错误

时间:2018-02-13 06:45:22

标签: android jenkins cmake android-ndk

我正在尝试使用gradle构建一个Android原生项目。在体系结构arm64-v8ax86x86_64的构建过程中,armeabi-v7a的构建失败并出现唯一错误:

/{sdk-path}/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=15 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -Wa,--noexecstack -Wformat -Werror=format-security  -frtti -fexceptions -Os -DNDEBUG    -O2 -DNDEBUG -D_NDEBUG=1 -s -fPIC   -Wdeprecated-declarations -std=c++14 -MD -MT CMakeFiles/acplocalnet.dir/src/main/cpp/HttpTransferCallbackHookImpl.cpp.o -MF CMakeFiles/acplocalnet.dir/src/main/cpp/HttpTransferCallbackHookImpl.cpp.o.d -o CMakeFiles/acplocalnet.dir/src/main/cpp/HttpTransferCallbackHookImpl.cpp.o -c /Users/acpl/workspace/ACPLocal_net_Android/net/project/android/acplocalnet/app/src/main/cpp/HttpTransferCallbackHookImpl.cpp
  clang++: warning: argument unused during compilation: '-s' [-Wunused-command-line-argument]
  error: unable to open output file '/apps/temp/HttpTransferCallbackHookImpl-baaa5e.s': 'No such file or directory'
  1 error generated.
  ninja: build stopped: subcommand failed.

这里的问题是我能够运行此命令并在本地运行计算机时成功构建本机库,但在通过jenkins运行时它会失败。另一个有趣的事情是它只对abi armeabi-v7a失败并且通过所有其他架构。

我已经验证了用户,路径和环境变量,例如 ANDROID_HOME ANDROID_NDK_HOME ,当我在本地使用命令行运行并使用jenkins运行时,它们是相同的

1 个答案:

答案 0 :(得分:0)

该命令无法在“/ apps / temp”位置打开输出文件,因为该目录在从站中不存在。此临时目录存在于jenkins主服务器中,并传递给在构建变量TMP_DIR中可见的从服务器。明确提到jenkins slave的有效临时目录修复了这个问题。