文档章节

AndroidStudio中使用Android.mk

CrazyManDF
 CrazyManDF
发布于 2017/03/31 19:12
字数 334
阅读 578
收藏 0

默认你的工程接口如图所示

输入图片说明

首先配置好NDK开发目录,在build.gradle的defaultconfig中配置好ndk选项

 ndk {
        moduleName "xxx"
   }

然后,在build.gradle(app)文件的android结构下,加入以下配置:

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

jniLibs.srcDir 'src/main/libs':意思是编译成功的so,会存放在src/main/libs目录下面 jni.srcDirs = []:将gradle的jni源目录设置为空,禁用gradle自带的ndk编译

接着加入以下配置

	task ndkBuild(type: Exec) {  
		if (Os.isFamily(Os.FAMILY_WINDOWS)) {  
			commandLine 'ndk-build.cmd', '-C', file('src/main/jni').absolutePath  
		} else {  
			commandLine 'ndk-build', '-C', file('src/main/jni').absolutePath  
		}  
	}  
	  
	tasks.withType(JavaCompile) {  
		compileTask -> compileTask.dependsOn ndkBuild  
	}  

ndkBuild函数的意思是执行默认的ndk编译 task.withType的意思是添加ndkbuild为工程编译的依赖项 因为涉及到os辨认,所以在此文件的文件头需要加入

	apply plugin: 'com.android.library'
	import org.apache.tools.ant.taskdefs.condition.Os 

这样在编译的时候可能会报的错误为 execution failed for task ':app:ndkbuild'.

此时,检查NDK路径配置是否有误,如果没有异常,使用cmd命令直接调用ndk-build(.cmd) -C 进行编译,如果代码有误,可直接检查代码。如果代码确认无误。,

将ndk-build.cmd的全路径填入工程路径中,即可成功编译

	task ndkBuild(type: Exec) {  
		if (Os.isFamily(Os.FAMILY_WINDOWS)) {  
			commandLine 'D:\\xxxxx\\android-ndk-r11b\\ndk-build.cmd', '-C', file('src/main/jni').absolutePath  
		} else {  
			commandLine '/home/xxxxx/Android/android-ndk-r11b/ndk-build', '-C', file('src/main/jni').absolutePath  
		}  
	}

本文转载自:http://blog.csdn.net/qq1113130712/article/details/51020224

上一篇: Android WebView
下一篇: Genymotion 使用
CrazyManDF
粉丝 3
博文 81
码字总数 34160
作品 0
程序员
私信 提问
AndroidStudio使用问题记录

问题: Gradle sync failed: Connection timed out: connect Consult IDE log for more details (Help | Show Log) (23 s 591 ms) 问题原因: Androidstudio的网络通信被网络防火墙阻止了,导......

黑灯瞎火走夜路
2018/12/21
0
0
八.将android本地项目传到gitHub上

前言 之前讲过,在gitHub上建立库,然后将本地项目上传到github上。这节讲讲直接用androidstudio将本地项目传到gitHub上。 今天涉及的内容有: androidstudio上git配置 androidstudio上gitHu...

奔跑的佩恩
04/13
0
0
qlslylq/FlutterDesign

  作者:qlslylq (浅蓝深蓝叶落秋)   联系:13297089301 QQ:2939143482   QQ讨论群:326550832(AndroidDesign)   名下开源框架:   1.AndroidDesign(eclipse,in 2014)   2.A...

qlslylq
04/07
0
0
关于切换Windows用户导致Android Studio无法识别Android SDK 的解决方法

关于切换Windows用户导致Android Studio无法识别Android SDK的解决方法。 如果你的计算机是多用户的,你肯定会遇到过这个问题,例如账号A和账号B ,当你在A账户下使用Android Studio可以开发,...

Helloall
2015/02/13
2.2K
1
AndroidStudio怎样导入jar包

AndroidStudio用于开发安卓Apk非常地方便,但是它的很多设置都与Eclipse不一样。比如给项目中添加新的jar,在AndroidSutdio中就没有Java编译路径的入口,就很难找到添加jar的入口。不过换一种...

傲娇字符
2015/08/03
72
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
37
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
57
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部