Eclipse+ADT+NDK(android-ndk-r8c)通过JNI开发NDK应用(以编译Android bsdiff增量更新为例)

工作环境(蓝色粗体字为特别注意内容)
1,系统环境:Win7 Ultimate sp1
2,软件环境:Eclipse+ADT+NDK(android-ndk-r8c)

一个Android项目需要NDK编译,一看是AndroidStudio工程,但是我的AndroidStudio还没配置过NDK,之前都是用ADT+NDK的方式编译,一直用的好好的。既然是AdroidStudio工程,那就直接用AS配置我原来下载的NDK来进行编译吧!
说干就干,在AS中将NDK的路径配置上,然后各种配置弄好,发现报错

ndk com.android.build.gradle.internal.cxx.configure.JsonGenerationVariantConfiguration.<init>, parameter ndkVers

网上说是NDK版本太低了,需要改什么版本号之类的,改来改去后来没成功。懒得折腾了,索性用我原来的ADT新建一个NDK项目进行编译,然后将*.so文件扔到AndroidStudio工程就可。下面来看看具体步骤:

1、下载NDK开发包,android-ndk-r10e-windows-x86_64.exe,然后解压缩到 ${ndkroot}。

2、打开ADT,Window->Android->NDK->选择1中解压缩的文件夹  ${ndkroot}。

3、在需要进行JNI开发的项目上右键,Android Tools -> Add Native Support -> jni_name。

4、一切顺利的话,在左侧就出现一个jni文件夹,里面有hello.cpp和Android.mk两个文件。

5、将c/c++的源文件复制到jni文件夹下面,并修改Android.mk文件。我的文件目录如下:

6、编写Android.mk文件,内容如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/bzip2
LOCAL_MODULE    := bsdiff
LOCAL_SRC_FILES := bsdiff.c \
                bs.c \
                bspatch.c \
                bzip2/bzlib.c \
				bzip2/crctable.c \
				bzip2/compress.c \
				bzip2/decompress.c \
				bzip2/randtable.c \
				bzip2/blocksort.c \
				bzip2/huffman.c
LOCAL_LDLIBS := -lz -llog -lm
include $(BUILD_SHARED_LIBRARY)

7、如果需要指定编译平台,则需要新建一个Application.mk文件,内容如下:

APP_ABI := armeabi
APP_PLATFORM :=android-8

8、最终目录结构如下

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值