您的位置:首页 > 移动开发 > Android开发

在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的编译系统了解不是很深的,估计很难写出来

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: