使用android-ndk官方ndkbuild例子
Why this blog
现在(2018年9月27日),Android Studio中新建ndk项目都使用cmake而不是Android.mk+Application.mk的方式。但老项目需要维护,android.mk方式还需要过一遍。
本文在最新Android Studio中配置了https://github.com/googlesamples/android-ndk/tree/android-mk/hello-jni,并更新了gradle相应的配置。
整理后的代码地址在https://github.com/zchrissirhcz/toolbox/tree/master/android/hello-jni_ndkbuild
Get started
cd d:/work
git clone https://github.com/googlesamples/android-ndk
cd android-ndk
git checkout -b master-ndkbuild
拷贝hello-jni目录到d:/work/AndroidProjects/hello-jni_ndkbuild目录
用AS打开这个目录。发现是gradle构建的,但是新版AS有问题。
4.1 修改Project的build.gradle
原来的:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
}
}
allprojects {
repositories {
jcenter()
}
}
改成:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google() //新增
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3' //修改版本。注意,这个版本和gradle-wrapper.properties中的gradle版本不是一回事。
}
}
allprojects {
repositories {
jcenter()
}
}
// 新增
task clean(type: Delete) {
delete rootProject.buildDir
}
大坑
Project的build.gradle中的com.android.tools.build:gradle:3.1.3这个版本3.1.3,
和gradle-wrapper.properties中的gradle版本不是一回事。
4.2 修改gradle-wrapper.properties中的gradle版本
原来:
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
新的:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
4.3 去掉app的build.gradle中的buildToolsVersion
新版gradle中,这个buildToolsVersion有副作用。扔掉。
4.4 gradle sync;build
使用android-ndk官方ndkbuild例子的更多相关文章
- Android NDK(一) ndk-build构建工具进行NDK开发
本文目录 一.androidstudio环境 二.快捷键配置 三.新建项目 四.NDK开发 五.so文件编译 一. androidstudio的环境 在SDK Tools中安装NDK开发环境(File ...
- Android SDK Android NDK 官方下载地址
Android NDK r6b Windows http://dl.google.com/android/ndk/android-ndk-r6b-windows.zip Mac OS X(intel) ...
- 下面就介绍下Android NDK的入门学习过程(转)
为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大. 2. 在NDK中调用第三方C/C++库,因为大部分的开源库 ...
- (转)Android: NDK编程入门笔记
转自: http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html 为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代 ...
- Android NDK入门实例 计算斐波那契数列二生成.so库文件
上一篇文章输生成了jni头文件,里面包含了本地C代码的信息,提供我们引用的C头文件.下面实现本地代码,再用ndk-build编译生成.so库文件.由于编译时要用到make和gcc,这里很多人是通过安装 ...
- Android SDK Android NDK Android Studio 官方下载地址
2016.12 Android Studio Windows Includes Android SDK https://dl.google.com/dl/android/studio/install/ ...
- Android SDK Android NDK Android Studio 官方下载地址<转>
转自:http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html 2016.10Android Studio 2.2.1.0https ...
- android NDk环境编译总结
首先,这篇文章的撰写是基于很多前人的优秀的帖子,感谢他们的分享让我能够学习这么多的知识.谢谢 Android NDK开发环境的搭建 前言: Android 上,应用程序的开发,大部分基于 Java 语 ...
- C++开发安卓、windows下搭建Android NDK开发环境
1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...
随机推荐
- JavaWeb - Servlet教程
http://www.runoob.com/servlet/servlet-tutorial.html
- js变量的解构赋值
今天在学习时看到几段代码,让我感叹JS的灵活,特此一记: let stateObj = {a:1,b:3}; let newObj = {b:13,c:4} ; stateObj = {...stat ...
- Linux虚拟机安装及环境搭建
1.下载centos,地址:https://www.centos.org/download/ 下载时选择DVD ISO 2.使用VMware Workstation进行安装. 3.虚拟机网络配置 ...
- rsync+inotify实现实时同步案例【转】
1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...
- ansible笔记(5):常用模块之文件操作(二)
ansible笔记():常用模块之文件操作(二) 文件操作类模块 find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样. 此处我们介绍一些find模块的常用参数, ...
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- 路由跟踪表满,日志报错nf_conntrack: table full, dropping packet.
“连接跟踪表已满,开始丢包”!相信不少用iptables的同学都会见过这个错误信息吧,这个问题曾经也困扰过我好长一段时间.此问题的解决办法有四种(nf_conntrack 在CentOS 5 / ke ...
- java学习——异常处理
类 Throwable类 Java 语言中所有错误或异常的超类.只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw语句抛出.类似地,只有此类 ...
- Java 开源博客 Solo 2.5.0 发布
Java 开源博客 Solo 2.5.0 发布 Solo 是一款一个命令就能搭建好的 Java 开源博客系统,如果你想开个独立博客,请一定不要错过! 2.5.0 版本主要支持了 Markdown/JS ...
- Spark Streaming 实现思路与模块概述
一.基于 Spark 做 Spark Streaming 的思路 Spark Streaming 与 Spark Core 的关系可以用下面的经典部件图来表述: 在本节,我们先探讨一下基于 Spark ...