android studio 2.2 NDK开发经验总结及相关错误汇总(旧版NDK开发转新版NDK开发经验)

          android studio 2.2版本之后使用NDK变得简单,在新建项目的时候勾选 "include c++" 会自动为我们创建好NDK工程。当然前提需要你自己配置好NDK路径,和配置SDK是一样的,也是在配置项目SDK界面中配置。(选中项目 -> F4 -> SDK ... -> 第三个选择你的NDK安装位置,若没有需要提前下载。因为这些资源网上有大量重复的文章,所以这里不再赘述,直奔主题)


        创建好后就可以发现和以前版本不一样的是多出了 CMake 文件,目录下放置 C/C++ 文件夹的名称也变成了 cpp。所有的.c .cpp .h文件都建在这里,当在这儿新建成功后,需要在 CMake 文件中的 add_library () 里,找到 有一个不带#注释的路径 src/main/cpp/native-lib.cpp ,在这里将你新建的 C/C++ 文件路径写一下(就是改一下最后的文件名,一定要注意大小写!大小写!大写!),路径之间用回车就行,不用加逗号隔开。


示例的 MainActivity 中 static{} ""里的 名字,对应 CMake 中library 名字,ctrl+f 搜索一下,如果要换都换掉就行。


示例是在 MainActivity 类中用的C++,当然你可以在任意位置使用,和示例类一样,static{} 等都加上就可以写了。新建的方法名字要带 native,也模仿示例方法就行。创建成功后是红色的,alt+enter 选择第一个就可以自动创建了,创建成功后.java文件和.h文件方法的前面有一个 两个方向的箭头,如果出现就说明对了。然后你就可以在 c文件和cpp文件书写代码了。为了确保正确性,cv就可以了,然后在C/C++下面写代码就可以了,正确的话.java .h .c/.cpp方法名字前面的一个 箭头 都会变成两个 两个方向的箭头。


PS:NDK中错误各种各样,出错了不要着急,实在改不好就创建一个新的NDK工程一点点加。如果你是把别人的 C/C++ 文件复制过来的,切记要更改 方法名字中的类。可以找到 java 文件,写一个 native 方法,回车跳到 C/C++ 文件中,复制一下类名到你复制过来的方法名字上改一下类名,再重新编译就OK。如果复制的别人的,一定要仔细!再仔细!


写这篇博客一个是为了记录下自己的小教训,再一个就是让更多NDK初学者少走弯路。如果有什么经验和不明白的地方请留言,共努力。

你可能感兴趣的:(android,JNI,ndk)