android studio 已有NDK代码并且包含application.mk android.mk 使用ndkcmd 直接编译
2017-09-21 10:36
513 查看
从传统的NDK编译过渡到android studio 中去编译,不管如何改变,ndkcmd编译始终是支持的,
所以如下的配置,不管是新项目还是移植项目都是支持的,算是一种通用的配置。
依赖关系通过 mk文件维护
1,在APP module中的build.gradle中添加
Android{
}
然后使用ndkBuild task编译即可:
所以如下的配置,不管是新项目还是移植项目都是支持的,算是一种通用的配置。
依赖关系通过 mk文件维护
1,在APP module中的build.gradle中添加
Android{
task ndkBuild(type: org.gradle.api.tasks.Exec) { workingDir file('src/main') // workingDir file('src/main/TrulyHandsfreeSDK') commandLine getNdkBuildCmd() } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild } task cleanNative(type: Exec) { workingDir file('src/main') commandLine getNdkBuildCmd(),'clean' } clean.dependsOn cleanNative
}
def getNdkDir() { if(System.env.ANDROID_NDK_ROOT !=null) returnSystem.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 newGradleException("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.cmd" // def ndkbuild ="E\\:\\adt\\sdk\\ndk-bundle\\ndk-build.cmd" /*if (Os.isFamily(Os.FAMILY_WINDOWS)) ndkbuild += ".cmd"*/ return ndkbuild }
然后使用ndkBuild task编译即可:
相关文章推荐
- android studio中使用ndk编译.so文件,调用C/C++代码(jni编程)
- 在C#中使用C++的DLL,并且在DLL中包含有opencv的代码,通过“障眼法”操作
- Android Studio 使用NDK编译jni
- 在Windows下(不使用cygwin)NDK直接编译openssl动态库
- 使用eclipse直接编译jni并且使用jni
- MAC 系统下使用 Sublime Text 2 直接编译运行 java 代码
- 在jsp页面嵌入java代码和js并且在js中直接使用java代码中的变量
- NDK使用 ,OpenCV库的调用,在NDK中使用纯C++代码,android studio 2.1(1)
- 使用Android Studio2.2进行NDK编程下载NDK和编译工具
- 编译libfdk-aac 库,使用根目录下的android.mk直接包含所有子目录下的android.mk文件
- Android Studio增加NDK代码编译支持--Mac环境
- 使用NDK创建及配置C++程序(原生纯C++项目,不包含JAVA代码)
- Android Studio使用NDK编译自己的.so库
- Android Studio 2.1.1 中使用直接JNI与间接编译JNI
- Android Studio中NDK开发(一)如何使用预编译好的.so动态链接库
- android studio 2.2 使用cmake编译NDK
- cocos2d-x ndk使用已有静态库,减少编译时间
- 在windows平台下使用Android Studio的lldb插件调试andord程序的ndk代码的必要配置
- Eclipse中使用NDK自动编译C++代码
- cocos2d-x ndk使用已有静态库,减少编译时间