studio2.0+ndk-r11 中jni编译问题

写完了jni的helloworld之后发现当导入多个.c后出现了undefined reference to 的问题,如果是log标签的,最后找到了办法,修改gradle脚本,然后log的reference问题解决了:


可是还是有问题:


最终我决定使用gradle命令来追踪编译过程:在Terminal中输入gradlew compileDebug --stacktrace然后我发现提示开始下载gradle-2.10-all.zip,此时也可以选择手动安装,去下载一个gradle-2.10-all.zip(http://tools.android-studio.org/index.php/85-tools/109-android-tools-download),接着我根据教程去配置环境变量了,接着在dos窗口输入gradlew -v发现成功了,可是当我去studio的Terminal中输入gradle命令时发现又开始下载zip了,最后找到了配置办法:

C:\Users\"your username"\.gradle\wrapper\dists,以文件版本加all来命名的文件夹比如gradle-2.10-all,在这个下面有一串以a4w5fzrkeut1ox71xslb49gst这种字符串命名的文件夹,只需要将下载好的zip文件放进去,然后在Terminal中输入gradlew的任何命令它就会自动配置好,其所做的就是将文件解压释放。

之后会进行Configuring>>0/6 projects>>root project,只是会下载需要的jar

下载一段事件以后不动了,我就去setting中勾选上Gradle中的offline work,然后等待。。。

最后发现这个是中间文件的问题,调用方法不对,修改方法名字就好了。

但是调用库还是不对,最后发现了一个博客http://www.bubuko.com/infodetail-750593.html ,想到是不是NDK的版本问题啊,最后下载了r8的NDK,安装了Cygwin,配置好NDK,再次编译生成SO库,到Studio里面去调用,发现调用成功了!

原来我的Studio2.0,最低可以装的NDK是r9版本的,另外我的手机是android4.2的,NDK版本有对应的固件表,高版本的NDK是不支持低版本的固件。

Cygwin安装与配置可以看我的另一篇文章 http://blog.csdn.net/qwzhj/article/details/52088230

参考:http://www.aichengxu.com/view/2513740

猜你喜欢

转载自blog.csdn.net/QWZHJ/article/details/51918251