在Android studio IDE中采用自己编写的Android.mk
2016-05-12 23:05
393 查看
在app/src/main/ 新建jni文件夹/app/src/main/jni在里面创建一个.cc文件,编写Android.mk Application.mk本人的实例如下:Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := HellJni LOCAL_SRC_FILES := HelloJni.cpp include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_STL := gnustl_staticAPP_ABI := armeabi armeabi-v7a
接下来是build.gradle 这个文件是在工程的顶层目录下的,与settings.gradle 文件在同一个目录下
我这边的修改如下:
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle-experimental:0.7.0-rc1'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}}
上面标记红色 地方是我修改的地方,
之后到app目录下,修改此目录下的build.gradle
具体如下:
import org.apache.tools.ant.taskdefs.condition.Osapply plugin: 'com.android.model.application'model {android {compileSdkVersion = 23buildToolsVersion = "23.0.2"defaultConfig {applicationId "com.example.administrator.myjni"minSdkVersion.apiLevel = 15targetSdkVersion.apiLevel = 23versionCode = 1versionName = "1.0"ndk{moduleName = 'HelloJni'}}// ndk{// moduleName = "HelloJni"// stl = 'gnustl_static'// cppFlags.addAll(['-std=c++11'])// ldLibs.addAll(['android', 'log'])// abiFilters.addAll(['armeabi', 'armeabi-v7a'])// }sources{main{jni{source{srcDirs = []}}jniLibs{source{srcDir 'src/main/libs'}}}}task ndkBuild(type: Exec) {if (Os.isFamily(Os.FAMILY_WINDOWS)) {commandLine 'E:\\Android_SDKS\\ndk-bundle\\ndk-build.cmd', '-C', file('src/main').absolutePath}else{commandLine 'ndk-build', '-C', file('src/main').absolutePath}}tasks.withType(JavaCompile){compileTask -> compileTask.dependsOn ndkBuild}buildTypes {release {minifyEnabled falseproguardFiles.add(file('proguard-android.txt'))}}}}dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.3.0'}标记为蓝色的部分,是需要同时设置的
标记为紫黑色的部分,是需要特别注意的,否则会出现错误: " A problem occurred starting process 'command 'ndk-build.cmd'' "
紫黑色部分标记的是本人的ndk包安装的地方
标记为紫红色的部分是Android studio按照动态生成的Android.mk文件进行编译的方式
以上就是自己写的一个简单的jni 测试,采用自己写的Android.mk
当然采用自己的写的Android.mk 有优点,特别是已经有Android.mk的工程,直接导入进来就好了,但是也有其缺点,如果是一个linux工程文件,只有Makefile文件,这时则需要
自己去编写Android.mk文件,对于Android的编译系统了解不是很深的,估计很难写出来
相关文章推荐
- Android 引入aar相关问题
- Activity四种启动模式
- Fragment和viewPager拒绝预加载
- [android] 手机卫士黑名单功能(ListView优化)
- Android下屏幕适配
- Android 中SharedPreferences跨应用读取数据的
- android studio 一直在 svn performing vcs refresh
- android.content.res.Resources$NotFoundException 的解决方法
- android开发环境的搭建
- Android插件化原理解析——概要
- Android开发:自定义Spinner适配器
- Android Terminal telnet windows
- android自定义控件,动态设置Button的样式
- Windows 10 + Android Studio 2.1 + HelloWorld程序
- Android事件的分发机制
- android关于调用联系人信息的问题
- Android学习之监听软键盘的弹起关闭
- 生成二维码
- [Android]百度地图之几何标注和文字覆盖物
- AndroidStudio技巧之copy工程