前言
之前编译的native工程提示找不到变量,使用Android studio新建的native工程也报错,这个原因苦了我好久,今天有时间仔细分析了下,希望能对同样有此问题的小伙伴有帮助。
一、报错信息
报错提示:app\.cxx\Debug\tn3j6d6f\x86\.cmake\api\v1\reply was not a directory
报错背景:使用Android Studio新建工程,选择native c++。原生的工程,按理说只要ndk、ndkbundle 、cmake工具已下载就能正常编译通过。
二、报错分析
打开对应的目录,看到的确只生成了query目录,即询问、查询。而报错提示是没有reply这个目录,即回复。
使用家里的Android studio 新建一个native工程试试:
对比目录信息,可以看到的确生成了reply目录
把编译通过的工程传送到不能通过的电脑进行对比:
debug下此时生成两个目录,上面是家里编译正常的,下面是在company编译不通过的。
对比一下x86目录下的metadata_generation_command.txt
可以看到正常的下面有jvm参数和构建系统的版本号。
最终就是因为自己SDK
目录下的cmake.exe
没有正常调用,构建系统没起效导致的。
company为了防止随意安装软件所以IT设置了权限,很多.exe
后缀文件在公司是被禁止打开使用的,这个找IT就OK了。
总结
.cmake\api\v1\reply was not a directory
本文分析根因是构建系统cmake、ndkbundle
等工具未起效导致的,不妨先点击对应的bin文件下的exe文件,看是否是权限问题导致没有正常调用构建系统导致的。