我試圖在自建的android發行版中包含簡單的C++共享庫。它已經用g ++編譯,沒有任何錯誤和警告。在自建的android中包含C++共享庫。啓動時出錯ndk-build
現在我需要將這個.so庫包含到自建的android中。
我複製我的源到 '$(Android的源)/ NDK /源/安卓/ libmd5/JNI' 和創建Android.mk與一個內容文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS :=
LOCAL_MODULE := libmd5
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib
LOCAL_SRC_FILES := md5.h md5.cc
include $(BUILD_SHARED_LIBRARY)
然後我添加下一行在〜/ .bashrc結尾
export PATH=$PATH:$HOME/AndroidSources/ndk:$HOME/bin/android-sdk-linux/tools
分別有NDK和SDK工具的路徑。
當我推出NDK建造讓我接下來的事情:
[email protected]:~/AndroidSources/ndk/sources/android/libmd5$ ndk-build
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module md5
Android NDK: md5.h md5.cc
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found
SharedLibrary : libmd5.so
make: /home/andrey/AndroidSources/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++: Command not found
make: *** [obj/local/armeabi/libmd5.so] Error 127
當我跟着〜/ AndroidSources/NDK /工具鏈/ ARM-Linux的androideabi-4.4.3/
我沒有找到預建的目錄。還有包括剛纔兩個文件:config.mk和setup.mk
但是從severally downloaded NDK-R8E而我發起NDK-建立我得到一個非常不同的輸出:
$ ndk-build
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module md5
Android NDK: md5.h
Compile++ thumb : md5 <= md5.cc
StaticLibrary : libstdc++.a
SharedLibrary : libmd5.so
Install : libmd5.so => libs/armeabi/libmd5.so
警告是理解 - .h文件不得在.mk文件中。不過,我在libs/armeabi /(如上所述)中獲得了最新的庫。
我做了所有與Ubuntu 12.10並嘗試使用ndk從android source。
我做錯了什麼?如何在自建的Android中獲得包含共享庫?我希望我已經提供了足夠詳細的信息。如果不是,請詢問。
它看起來像從谷歌下載ndk包解決你的專業blem。您應該使用它們打包的版本,而不是來自其源存儲庫的版本。 – krsteeve