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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

第三方库多so数据庞大如何减少体积

删除没一个lib里面的其他 so,只保留armeabi文件夹的,然后 重新 rebuild 一遍,如果删除不一致 会出现so找不到的问题,也就不会自动寻找这个文件夹了,如果还是不行尝试清理干净,卸载原...

在Android studio IDE中采用自己编写的Android.mk

在app/src/main/ 新建jni文件夹 /app/src/main/jni 在里面创建一个.cc文件,编写Android.mk  Application.mk 本人的实例...

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

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

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

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

AndroidStudio2.0搭建Ndk环境&成功编译使用

现在使用Ndk开发的场景还蛮多,游戏引擎、音视频开发等都能涉及到,以前的工程大部分都是Eclipse的工程目录,但是App开发现在大部分都是在AndroidStudio开发工具中进行的,那就有个问题了...

Android源码编译第三方app(Android studio编写项目)如何写Android.mk

在Android源码开发过程中,需要整合进第三方APP到系统中,作为内置应用。如果是第三方APP是以APK形式整合进项目中,那么根据平台和公司的要求,只需修改编译脚本就可以实现整合,这里不再赘述;本文...

Android Studio使用gradle-experimental构建NDK工程(无需Android.mk、Application.mk文件)

非常好的android studio使用的文章,强力给大家推荐,找了很久才找到的!!!

不起眼的android studio gradle小问题 看不到症状的超长时间编译足够浪费你几百块钱工资的

以前 gradle一直在gradle build ruing ,我的做法是断开网卡,如果 提示马上 提示错误,说明 我应该采取 离线,或者手动覆盖指定文件,或者开启翻墙代理,进行下载。 然而第三者,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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