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例子的更多相关文章

  1. Android NDK(一) ndk-build构建工具进行NDK开发

    本文目录 一.androidstudio环境 二.快捷键配置 三.新建项目 四.NDK开发 五.so文件编译 一. androidstudio的环境 在SDK Tools中安装NDK开发环境(File ...

  2. Android SDK Android NDK 官方下载地址

    Android NDK r6b Windows http://dl.google.com/android/ndk/android-ndk-r6b-windows.zip Mac OS X(intel) ...

  3. 下面就介绍下Android NDK的入门学习过程(转)

    为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大. 2. 在NDK中调用第三方C/C++库,因为大部分的开源库 ...

  4. (转)Android: NDK编程入门笔记

    转自: http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html 为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代 ...

  5. Android NDK入门实例 计算斐波那契数列二生成.so库文件

    上一篇文章输生成了jni头文件,里面包含了本地C代码的信息,提供我们引用的C头文件.下面实现本地代码,再用ndk-build编译生成.so库文件.由于编译时要用到make和gcc,这里很多人是通过安装 ...

  6. Android SDK Android NDK Android Studio 官方下载地址

    2016.12 Android Studio Windows Includes Android SDK https://dl.google.com/dl/android/studio/install/ ...

  7. Android SDK Android NDK Android Studio 官方下载地址<转>

    转自:http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html 2016.10Android Studio 2.2.1.0https ...

  8. android NDk环境编译总结

    首先,这篇文章的撰写是基于很多前人的优秀的帖子,感谢他们的分享让我能够学习这么多的知识.谢谢 Android NDK开发环境的搭建 前言: Android 上,应用程序的开发,大部分基于 Java 语 ...

  9. C++开发安卓、windows下搭建Android NDK开发环境

    1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...

随机推荐

  1. CSS函数

    布局时发现CSS居然能进行计算,cale()函数用于动态计算长度值 html,body的height为100%,黑框浮动width为200px,橙框处标准流,由于浮动最初目的是为了实现文字环绕,所以文 ...

  2. React的Element的创建和render

    React的Element是React应用程序的最小构建块,它是用来描述我们在屏幕上看到的浏览器页面上的内容. 在React中构建 Element 有两种方式: 1.JSX的方式,JSX不是React ...

  3. Linux虚拟机安装及环境搭建

    1.下载centos,地址:https://www.centos.org/download/ 下载时选择DVD ISO 2.使用VMware Workstation进行安装. 3.虚拟机网络配置    ...

  4. python下载夏目友人帳

    python下载夏目友人帐 一般情况下我们使用爬虫更多的应该是爬数据或者图片吧,今天在这里和大家分享一下关于使用爬虫技术来进行视频下载的方法,不仅可以方便的下载一些体积小的视频,针对大容量的视频下载同 ...

  5. python3+selenium框架设计01-Page Object

    页面对象模型Page Object Modal是一种脚本设计模型,将页面元素,业务操作分割,当实际页面发生变化的时候,只需要修改页面元素文件,业务操作不需要修改. 具体实现需要先写一个页面公共类,里面 ...

  6. logging模块--日志文件

    初级的使用配置模式类似与print 默认打印waring等级及以上--通过更改等级来测试代码 logging.debug("debug no china") #调试模式 loggi ...

  7. 题解-bzoj4320 Homework

    Problem bzoj4320 Solution 前置技能:分块+线段树+卡常+一点小小的数学知识 考试时A的 这种题无论怎么处理总有瓶颈,套路分块,设\(k\)以下的插入时直接暴力预处理,查询时直 ...

  8. (常用)xml-pickle-shevel-json模块

    json,pickle模块        1. 什么是序列化            序列化指的是将内存中的数据类型转换成一种中间格式,该格式可以用来存到硬盘中或者基于网络传输         2. 为 ...

  9. 通过python生成nginx模板配置文件

    通过python生成nginx模板配置文件 # cat config.py #coding=utf-8 nginx_conf = ''' server {{ listen {port}; server ...

  10. 1)django-建立步骤和目录说明

    一:前言 django是python最流行的WEB框架. 二:django安装 pip install django 三:django项目建立步骤 1.创建django工程 django-admin ...