Application.mk檔案中在相關的部落格中說不允許APP_MODULES是一個帶空格的子產品清單,例如:
APP_MODULES := zlib sqlite
正确的寫法應該是
APP_MODULES:= zlib sqlite
測試沒有任何的問題,這裡面的是動态庫的子產品清單的名字,而不是子產品所在檔案夾的名字,意思是編譯的子產品名稱是libmysqlite.so,在這裡上面的sqlite,必須修改為mysqlite否則ndk-build不會執行sqlite子產品下的Android.mk,并且這個libmysqlite.so是在Android.mk檔案中指定的
其中應該注意的一點:
注意:
1)makefile:2: *** missing separator. stop
mk檔案的指令行以TAB鍵開始,TAB鍵必須指定4個空格,由于采用了
Notepad++編輯,預設的TAB鍵占用兩個空格是以出現上述錯誤。
解決:設定》全選項》制表符設定》制表符寬度:4
2)commands commence before first target
上一行換行符号\後面有空格,或者本行前面的空白有非法字元
一個簡單的Application.mk例子
APP_OPTIM := release
APP_ABI := armeabi-v7a
APP_STL := gnustl_static
NDK_DEBUG := 1
APP_PLATFORM := android-14
NDK_TOOLCHAIN_VERSION := 4.8
APP_CPPFLAGS += -g -O0 -gdwarf-3
APP_MODULES := zlib
本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1732429,如需轉載請自行聯系原作者