androidStudio使用自定义Android.mk文件

原创 2016年08月30日 07:26:05

找了好久,总算找到一个正确的使用Android.mk文件的方式

修改app/build/build.gradle 为以下内容,

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "com.cc.jniTest"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets.main.jni.srcDirs = [] //禁用自带编译ndk功能
    sourceSets.main.jniLibs.srcDir 'src/main/libs'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}

task ndkBuild(type: Exec) {
    workingDir file('src/main/jni')
    commandLine getNdkBuildCmd()
}

task cleanNative(type: Exec){
    workingDir file('src/main/jni')
    commandLine getNdkBuildCmd(), 'clean'
}

clean.dependsOn cleanNative

def getNdkDir() {
    if (System.env.ANDROID_NDK_ROOT != null)
        return System.env.ANDROID_NDK_ROOT
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    def ndkdir = properties.getProperty('ndk.dir', null)
    if (ndkdir == null)
        throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.")
    return ndkdir
}

def getNdkBuildCmd() {
    def ndkbuild = getNdkDir() + "/ndk-build"
    ndkbuild += ".cmd"
    return ndkbuild
}
如果还是不行,直接cmd命令编译so吧,先把ndk目录添加至系统环境变量,到jni目录下执行ndk-build

Android Studio使用自定义的Android.mk文件编译第三方so库

使用情景: 1).C/C++的开发人员完成底层的算法,并编译成一个so库,并且提供.h头文件; 2).在Android端需要调用其中的函数完成一些操作; 3).但提供的so库不...

Android studio 使用android.mk来配置ndk

Android studio 使用Android.mk 来配置ndk,对JNI的使用

Android studio如何利用Android.mk编译生成多个so文件

我们这次不用gradle 去生成SO文件,改用Android.mk 去编译。 一共分为2步: 1.在Java中编写要调用的静态方法和需要加载的库,并生成头文件。 2.配置gradle 3.配置Andr...

Android JNI学习笔记(三)-编译文件Android.mk、Application.mk 与camke

1. 前言在android2.2中,加入了cmake编译,而以前都是用Android.mk、Application.mk的,今天就来记录下,他们的配置选项。2. Android.mkAndroid.m...

android studio上的jni编译流程以及Android.mk文件的处理。

最近在研究牛逼的视频库ffmpeg 在android上的应用。查找各路大神的博客,终于可以在eclipse的项目中略施一二技能。但是公司项目是用的android studio。项目的文件结构都不一样,...
  • zrbcsdn
  • zrbcsdn
  • 2015年09月11日 16:34
  • 5754

Android Studio如何创建.mk文件

右键 新建-file 在输入的时候加上.mk即可

AndroidStudio 放弃Gradle使用Android.mk

默认你的工程接口如图所示 首先配置好NDK开发目录,在build.gradle的defaultconfig中配置好ndk选项 然后,在build.gradle(app)文件的android结构下...

android studio上的jni编译流程以及Android.mk文件的处理

 最近在研究牛逼的视频库ffmpeg 在Android上的应用。查找各路大神的博客,终于可以在eclipse的项目中略施一二技能。但是公司项目是用的android studio。项目的文件结...
  • fishmai
  • fishmai
  • 2017年07月25日 14:44
  • 204

Android Studio 生成.so文件及 Android.mk文件解析

在NDK开发中生成.SO文件在app路径的build.gradle 的defaultconfig中添加ndk{ moduleName "MyJni" //设置库(so)文件名称 l...

Android中各类.mk文件的编写

LOCAL_PATH:= $(call my-dir)  include $(CLEAR_VARS) LOCAL_STATIC_JAVA_LIBRARIES := xsocket jacks...
  • mo_hen_
  • mo_hen_
  • 2016年10月18日 18:26
  • 3459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:androidStudio使用自定义Android.mk文件
举报原因:
原因补充:

(最多只允许输入30个字)