• 如何從現有的share library開發!?


    http://www.android1.net/Topic.aspx?BoardID=27&TopicID=1847
     

    請問一下各位版大~
    小弟現在在跟別的公司合作
    我這邊負責開發應用程式,而對方公司提供C++的 API
    由於對方不提供source code,只會提供 native 端的 header檔(*.h)以及 share library檔(*.so)
    我現在是用NDK在開發,我目前的作法是將 *.h 以及 *.so 放在 project_root / jni 底下
    跟我自己的native code放在一起,然後再 Android.mk 裡面寫

    LOCAL_MODULE := sample
    LOCAL_SRC_FILES := my_sample_jnt.c
    LOCAL_SHARED_LIBRARIES := libothers
    include $(BUILD_SHARED_LIBRARY)

    但是在build NDK的時候,
    第一個遇到的問題是會出現他在 project_root / bin / ndk / local / armeabi / 中找不到 libothers.so的檔案
    我必須手動在將 *.so copy 過去,但是用這樣的方式build過之後,之後安裝到模擬器時,在 Runtime的時候會在 System.loadLibrary 的時候出現
    Library sample not found
    但是我用 adb shell 到 data / data / [my_project] / lib / 底下去看的時候,libsample.so 確實是存在的...

    主要想請問一下,如果對方只有提供 *.h 以及 *.so 的狀況下,Android.mk要怎麼寫嗎?
    因為NDK的Sample裡面只有一個是如果對方有提供source code的時候的用法(Twolib)
    感謝!

     

    如何從現有的share library開發!?

    解決了!
    分享一下~
    目前是把
    LOCAL_SHARE_LIBRARIES := libother
    更改成
    LOCAL_LDLIBS := libother.so

    然後把要參考的*.so檔案放在project root 就可以了!
    LOCAL_SHARE_LIBRARIES 好像是如果你的library是被 build 出來的話才是用這個
    所以他會去它 build 的 out(bin) 那邊去找
    而 LOCAL_LDLIBS 的話就是請他去參考某個library!
    http://www.android1.net/Topic.aspx?BoardID=27&TopicID=2861
    請問各位,我將libusb編譯成share library(.so),然後將b.so加到另外一個ndk的share library,來實現usb的相關功能。不過當我開啟java的app後,app就當掉。必須要將libusb.so copy到Android system/lib下就可以執行無誤。
    這是什麼原因造成的???
    我的Android.mk
    LOCAL_MODULE := sample
    LOCAL_SRC_FILES := my_sample_jnt.c
    LOCAL_LDLIBS := libusb.so
    LOCAL_SHARED_LIBRARIES := libc
    include $(BUILD_SHARED_LIBRARY)

    我是參考以下文章
     
  • 相关阅读:
    经典排序算法
    892. 三维形体的表面积
    252. 会议室
    253. 会议室 II
    876. 链表的中间结点
    543. 二叉树的直径
    836. 矩形重叠
    1055. 形成字符串的最短路径
    Android Studio Error: No sdk api is defined in local.properties
    Android Studio打开Android源码工程
  • 原文地址:https://www.cnblogs.com/leaven/p/2032851.html
Copyright © 2020-2023  润新知