扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在ADT中进行NDK开发非常简单,在Android Studio进行NDK开发也同样的容易。NDK开发主要有两中情况:一种是使用已经编译好的.so动态库;一种是使用c/c++源代码开发。
创新互联-专业网站定制、快速模板网站建设、高性价比平阴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式平阴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖平阴地区。费用合理售后完善,10多年实体公司更值得信赖。
使用Android Studio2.1.2 + android-ndk-r10e搭建NDK环境,遇到以下问题,特此记录下来;
1、配置NDK路径,打开local.properties,在末尾添加ndk.dir=E\:\\Android\\AndroidDevTools\\android-ndk-r10e;
2、打开工程的build.gradle,dependencies下面的classpath替换classpath 'com.android.tools.build:gradle-experimental:0.2.0',对应设置gradle wrapper的时候要对应
gradle2.5-all版本,如果是0.4版本,刚需要使用gradle2.8-all版本;
3、配置app的build.gradle,由于AS自带生成的gradle文件与NDK的gradle差别很大,这里附上已经配置好链接地址,
建立项目,并设置activity.xml布局文件,这一点与普通编程没有不同。通过一个简单的文本展示实验。
在MainActivity中添加native接口,并加载.so库
生成项目的.class文件。首先选中项目后,在菜单栏选择Build--Make Project。
Make之后,将生成.class文件,生成的.class文件位于app_path/build/intermediates/classes/debug/包名
利用javah生成C头文件:点击"View-Tool Windows-Terminal",即在Studio中进行终端命令行工具。在控制台中通过命令“cd app\src\main\java”,进入到java目录下。操作指令:javah -d ../jni vrlab.ndkdemoforandroidstudio.MainActivity。此时在main目录下生成一个jni文件夹,其中在jni文件夹中有生成的.h头文件。
编辑C文件,在jni文件夹下新建文件命名为main.c。并在该文件中导入需要的头文件,实现上一步生成的头文件中的方法。
配置NDK路径,在local.properties中指明sdk和ndk路径:
设置ndk参数,名字、发布平台等。在应用目录下的build.gradle中defaultConfig中设置
生成.so文件,此时再次选择Build--Build Project就可以生成so文件了。出现不支持NDK的错误提示,不过跟着错误提示修改:在项目空间下的gradle.properties中添加android.useDeprecatedNdk=true。
针对三种不同的CPU生成了三种不同的.so文件。生成的.so文件位于app_path/build/intermediates/ndk/debug/lib.
安装运行~~去吧,皮卡丘
现在Google提倡使用CMake/cpp方式进行ndk开发,在Android Studio进化到4.0版本时,使用ndk-bundle/c方式进行开发过程中,遇到诸多问题,现记录如下,以资备用。
前两行与最后一行是固定内容,需要配置的是从第三行开始的内容。
其中,LOG_TAG 后的 log_c 可以自定义为任意合法字符串。
表示将jniLibs目录指向之前生成并存放.so文件的目录(此目录也可以创建在工程下,并将路径直接指向工程下创建的目录中。如在工程下创建一个 libs 目录,之后在 [] 中输入 libs 即可)。
此时就会在当前classes下生成一个名称为 com_demo_www_JNI 的.h文件,将该文件移动至项目的jni目录下即可正常使用。
在点击 Files-Project Structure-SDK Location 并配置 Android NDK Location 时,有时会出现一个如下图所示的报错:
览帖诸位,如有更好的建议,请不吝赐教。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流