博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android studio2.3.2增加jni之自定义Android.mk
阅读量:6639 次
发布时间:2019-06-25

本文共 2533 字,大约阅读时间需要 8 分钟。

hot3.png

基于前面一篇android studio增加jni

现在在增加自定义Android.mk,在网上也找了一些,这里记录下比较简单的方法

在前一篇的基础上注释掉build.gradle和gradle.properties的修改,然后修改app的build.gradle增加如下内容

sourceSets {        main {            jni.srcDirs = []            jniLibs.srcDirs 'src/main/libs'        }    }    task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {        commandLine "/dao/ubapp/androidsdk/android-ndk-r10e/ndk-build",                'NDK_PROJECT_PATH=build/intermediates/ndk',                'NDK_LIBS_OUT=src/main/libs',                'APP_BUILD_SCRIPT=src/main/jni/Android.mk',                'NDK_APPLICATION_MK=src/main/jni/Application.mk'    }    tasks.withType(JavaCompile) {        compileTask -> compileTask.dependsOn ndkBuild    }    android.applicationVariants.all { variant ->        variant.outputs.each { output ->            def file = output.outputFile            output.outputFile = new File(file.parent, defaultConfig.applicationId + "-" +                    buildType.name + "-Ver" + defaultConfig.versionName + ".apk")        }    }

其中souceSets中jni.srcDirs这个一定要有,经过测试这个如果没有有可能会报错,

实际测试在有的环境中这样改编译不过,另一种可以,就是把上面的

sourceSets {        main {            jni.srcDirs = []            jniLibs.srcDirs 'src/main/libs'        }    }

不加,然后在android中增加如下:

android {    compileSdkVersion 26    buildToolsVersion "27.0.3"    //使用Android Lib生成release jar需要    publishNonDefault true    defaultConfig {        minSdkVersion 19        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        /*        ndk {            moduleName "Hardware"        }*/    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    sourceSets.main.jni.srcDirs = [] //禁用自带编译ndk功能    sourceSets.main.jniLibs.srcDir 'src/main/libs'}

task ndkBuild中commandLine后为ndk下的ndk-build的绝对路径

NDK_PROJECT_PATH

这个内容是通用的可以不用改

NDK_LIBS_OUT

这是设置生成的库文件存放的路径,一般也是通用的

APP_BUILD_SCRIPT
NDK_APPLICATION_MK

分别是指定Android.mk路径和Application.mk路径

然后下面的

android.applicationVariants.all

这个是用来重命名生成的apk的名字的.

附上我的mk文件

Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := HardwareLOCAL_SRC_FILES := Hardware.cLOCAL_LDLIBS    := -lloginclude $(BUILD_SHARED_LIBRARY)

Application.mk

APP_ABI := armeabi

============================================

作者:hclydao
版权没有,但是转载请保留此段声明

============================================

转载于:https://my.oschina.net/hclydao/blog/1555618

你可能感兴趣的文章
Raspberry Pi开发之旅-实现云平台监控
查看>>
QT开发之旅-Udp聊天室编程
查看>>
c++类型转换
查看>>
你应该知道的jQuery技巧
查看>>
Struts2中防止表单重复提交,global-results定义全局结果处理
查看>>
01:UI框架加强版
查看>>
PureMVC 开发App应用
查看>>
ulua介绍和使用
查看>>
C# 特性
查看>>
02.A*
查看>>
迭代器和泛型for
查看>>
建造者模式
查看>>
unity基础知识
查看>>
unity坐标系02
查看>>
unity编辑器扩展
查看>>
Json解析
查看>>
生命周期
查看>>
序列化
查看>>
扩展方法
查看>>
02定时回调增加任务循环功能
查看>>