Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android NDK中重新編譯已有so庫

Android NDK中重新編譯已有so庫

編輯:關於Android編程

最近需要用到第三方的SO庫,所以特地學習了NDK的prebuilt部分,文檔裡是這麼寫的: E:\android\android-ndk-r8d\docs\PREBUILTS.html    include $(CLEAR_VARS)    LOCAL_MODULE := foo-prebuilt    LOCAL_SRC_FILES := libfoo.so    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  //聲明在foo-user.c中需要用到的foo.h文件    include $(PREBUILT_SHARED_LIBRARY)       include $(CLEAR_VARS)     LOCAL_MODULE := foo-user     LOCAL_SRC_FILES := foo-user.c     LOCAL_SHARED_LIBRARIES := foo-prebuilt     include $(BUILD_SHARED_LIBRARY)   按照文檔中的方法將libfoo.so foo.h foo-user.c放到jni的目錄中,運行cygwin,編譯總是提示premission denied。後來我索性chmod 777 *.so *.c *.h 然後正常編譯通過了! 編譯通過之後再Android中調用的時候可能因為已有的so庫中的函數與Android工程的包名不一致,導致Android的logcat中提示no implements found XXX 這是因為 foo-user.c中的函數名稱需要與Android工程一致,就是要手動生成符合android工程包名的函數名,然後在foo-user.c中替換原有的函數名,這一部分下面的帖子寫的很詳細
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved