我對我目前正在嘗試的內容感到有些困惑:我想通過NDK交叉編譯一個用於Android的C庫,以便我可以創建一個JNI包裝,並從我的Android Java代碼調用它的一些功能。交叉編譯用於Android的C庫NDK
我跟着本指南crosscompile libopus(庫我想在我的項目包括):http://mortoray.com/2012/08/21/android-ndk-cross-compile-setup-libpng-and-freetype/這意味着我現在有上的/ opt/Android的EXT /,一個獨立的工具鏈有一個lib文件夾包含我交叉編譯的庫(libopus.a,libopus.so等)。
我的Android項目中還包含一個jni文件夾,它包含一些我想要的JNI綁定的C代碼,並且可以從我的Java代碼調用,但它什麼也沒做(我可以調用它但這是一個空白功能)。這意味着在我的項目中,有一個帶有「libopusUtilsNative.so」(包裝器)的/ lib/armeabi目錄。
我的問題是:
如何添加,我只是crosscompiled到項目庫中,以便(舉例來說)我可以做的C源代碼文件中的#include調用我已經有了並可以訪問庫函數?我有點迷路了,如何:
包括我交叉編譯到我的項目庫。
如何使我創建的包裝代碼包括它(我猜這與添加一些代碼到我的Android.mk文件有關,但我無能爲力)。
是的,但我不知道如何將該位添加到我已經存在的Android.mk。例如,在我的Android.mk中,LOCAL_PATH變量已經被定義爲$(call my-dir)。如果我只是將它複製粘貼到我現有的Android.mk中,那不是問題嗎? –
好吧,如果你想要的話,你可以從上面的makefile代碼中刪除'LOCAL_PATH'賦值,並在'LOCAL_SRC_FILES'中指定lib的完整路徑。 – Michael
它似乎在某種程度上起作用。這是我目前的問題:http://stackoverflow.com/questions/14325440/undefined-reference-to-function-in-static-library-with-ndk –