关于坑爹的NDK开发的大坑
由于从原有的项目增加ndk,编写好cpp文件,编译,并在手机面运行没有问题,以为大功告成,没想到在模拟机上面报错:
初步判断是x86架构的so文件找不到,但是验证apk的时候,x86下面已经生成相应的so文件。
按照群里面的大神们,把gradle里面的abiFilters更换,先只保留x86,在删除x86,clean Build,在安装,还是报错。
解决过程:
折腾了两天后,想到应该是配置的问题,于是新建一个hello C++的项目,能顺利跑的通,说明android studio配置没有问题,于是对比Gradle文件,从版本号,混淆等,最后发现都不是这些问题,而是因为多了这段代码,删掉,整个世界清静了,
//自动加载.so文件,调试时要注意omcs项目里是否也有此加载项,避免重复 /* //加上此行,就无法识别x86的so,导致app无法启动 sourceSets.main { jniLibs.srcDirs = ['libs'] // use the jni .so compiled from the manual ndk-build command jni.srcDirs = [] //disable automatic ndk-build call }*/
后续:
其实是
jni.srcDirs = [] //disable automatic ndk-build call
这一段搞的鬼,英文不好害死人啊