Android开发打开paddle的yolo_detection_demo项目,里面使用到NDK编译库。
错误信息:ERROR: Cause: executing external native build for cmake D:\workspace\Android\yolo_detection_demo\app\src\main\cpp\CMakeLists.txt
查阅资料有的说的gradle版本的问题,要修改gradle版本。但是笔者平时使用的都是如下配置。在一个开发电脑上面配置多个gradle是一件很恼火的事情,笔者不愿意改动这些。因此继续寻求其他方法。
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
classpath 'com.android.tools.build:gradle:3.5.2'
首先编译C++库和跑其他项目是不一样的,平时的一些程序是不需要使用到NDK的,所以在Androidstudio中的NDK配置可以忽略,但是编译C++库这个就不能忽略了。首先在AS的SDK Mananger中下载CMake和NDK,笔者这里DNK下载了好几个版本,最终使用到的是21,具体版本可以看下面截图。
2022-04-26_160709.pngProject Structure配置中选择NDK的目录。注意这里有个坑,NDK目录中不能有空格。笔者以前的AndroidSDK一直装在电脑的Program Files目录中,NDK的目录也在这下面,后来怎么搞都不行,最终找到网友的提示说是路径不能包含空格,所以将电脑的SDK重新安装。
2022-04-26_160554.png上述这些操作完成同步项目,仍然会提示这个错误。
笔者也不知道什么原因,可能是AS的编译方式与这个CMake文件的内容对不上吧。所以手动执行编译命令。
gradlew build --stacktrace
打开terminal窗口执行命令:gradlew build --stacktrace。注意打开terminal后默认的路径是项目目录下,如果不是请先切换到项目目录下再执行。
2022-04-26_161626.png这个编译过程是需要等一会,可以通过日志查看。
2022-04-26_162020.png编译完成后同步程序就可以跑起来了。
网友评论