executing external native build for cmake xxx CMakeLists.txt

Android Studio报错如下

executing external native build for cmake xxx CMakeLists.txt

gradle project sync failed.Basic functionality(e.g.editing,debugging

公司项目,同事跑没问题,我在公司跑也没问题代码什么的完全一样。然后我自己电脑上跑报错,网上各种搜索不能解决问题。代码一样为什么不同电脑跑有问题。

原因:是app下build.gradle文件下CMakeLists.txt没有找到对应的路径,虽然有,但就是找不到

首先:这两句话得加上,位置如图

executing external native build for cmake xxx CMakeLists.txt

externalNativeBuild {
    cmake {
        cppFlags ""
    }
    ndk {
        abiFilters 'armeabi-v7a'
    }
}
externalNativeBuild {
    cmake {
        path "CMakeLists.txt"
    }
}

接下来很重要:虽然配置什么没问题,但是就是报错

1.新建一个项目,我是换了包名的(应该可以不换),为了避免修改麻烦,把包名更改一个英文就可以了。

如包名com.baidu.xx可以改成com.baidu.x,com.baidu.xxx或者com.baidu.xj

2.把好项目中的代码全部复制过来(不要在文件中复制,在Android Studio中复制)包括src,两个build.gradle文件,CMakeLists.txt和c++相关文件,包名改了,所以每个类的包名的改,让它们不报错

3.

executing external native build for cmake xxx CMakeLists.txt

C++文件名改成和自己包名对应的文件名,如图

executing external native build for cmake xxx CMakeLists.txt

 

如下图:

executing external native build for cmake xxx CMakeLists.txt

com_xxxx_natives_YuvUtils_nativeYV12ToNV21,YuvUtils文件里面有nativeYV12ToNV21方法,所以这么定义,如图所示

executing external native build for cmake xxx CMakeLists.txt

只要.cpp和.c文件有包含包名文件的方法都得改

当全部改完后try again再次运行,程序正常。所以没有办法解决的小伙伴们,不嫌麻烦可以试一下,至少能解决