Eclipse+ADT+NDK(android-ndk-r8c)开发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、最终目录结构如下

发布了290 篇原创文章 · 获赞 163 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/pang9998/article/details/103584424