早上收到公司安全部门邮件,,对网络传输的用户敏感数据进行加密,经过和安全部门的大神们数次友好和不友好的亲切交谈,(在我即将拿出菜刀的那一刻)终于同意了我们的AES CBC 256加密方案,但是有一个额外的要求,Android端必须在JNI层加密,密码不能暴露在JAVA层。
听到这个要求,我心中不禁一声冷笑,作为一个口键盘81个月的码农,这点小要求能难得倒我?虽然已经好几年没有写C的代码了,但那可是我的第一语言!C语言强大的指针早已深深的烙印在了我的灵魂里,一个小小的加密方法而已,还能难得倒我?我按捺住内心的波动,面无表情的答应了这个挑战。信心满满的的回到工位上开始找算法,写代码 …
1小时…2小时…一天过去了…两天过去了…
终于在掉了九九八十一根头发后,来到了编译这一步。我习惯性的输入ndk-build,然后就报错了,错误信息如下:
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
/Users/*/Downloads/android-ndk-r16b/build/core/build-local.mk:151: *** Android NDK: Aborting . Stop.
WTF!这是什么鬼!一顿搜索加测试后终于找到了解决方案,要在ndk-build命令后指定NDK_PROJECT_PATH、NDK_APPLICATION_MK和APP_BUILD_SCRIPT
编译命令示礼如下:
ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk
问题终于解决了!!!
有的同学会问:这是为什么呢?
来!来!来!(敲黑板) 看这里官方文档:
拓展链接:https://developer.android.com/ndk/guides/ndk-build