解決Android使用第三方庫.so自動刪除問題,android.so

來源:互聯網
上載者:User

解決Android使用第三方庫.so自動刪除問題,android.so

1、在jni目錄下新目錄prebuilt,在此目錄下新檔案Androidusc.mk(名字隨便取),將第三方庫.so複製到此目錄

2、開啟Androidusc.mk新增內容,例如第三方庫是libScreenPop.so:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := ScreenPopLOCAL_SRC_FILES := libScreenPop.soinclude $(PREBUILT_SHARED_LIBRARY)

3、修改jni目錄下的Android.mk檔案,加入一條語句:

include $(LOCAL_PATH)/prebuilt/Androidusc.mk

Clean工程,完成。


Android找不到第三方so庫

你在linux下寫一個X86處理器的庫,要在java裡用,而且在arm處理器下。
是這意思嗎?
 
Android怎調用第三方SO動態連結程式庫

已瞭解解決方案:1.將SO檔案直接放到libs/armeabi下,然後代碼中System.loadLibrary("xxx");再publicnativestaticintxxx_xxx_xxx();接下來就可以直接調用xxx_xxx_xxx()方法;2.第二種方案,建立自己的SO檔案,在自己的SO檔案裡調用第三方SO,再在程式中調用自己的SO,這種比較複雜,需要建java類檔案,產生.h檔案,編寫C源檔案include之前產生的.h檔案並實現相應方法,最後用androidNDK開發包中的ndk-build指令碼產生對應的.so共用庫;求解:網上說的第二種方案,是自己引用so庫,最後聲稱JAR------解決方案--------------------------------------------------------首先要看這個SO是不是JNI規範的SO,比如有沒有返回JNI不直接支援的類型。也就是說這個SO是不是可以直接當作JNI來調用。如果答案是否定的,你只能選第二個方案。如果答案是肯定的,還要看你是不是希望這個SO的庫直接暴露給JAVA層,如果答案是否定的,你只能選第二個方案,比如你本身也是一個庫的提供者。一般如果你只有SO,就說明這個是別人提供給你的,你可以要求對方給你提供配套的JAVA調用檔案。1、這個要看這個SO是不是符合JNI調用的規範。還要看你自己的意願。2、因為第二種方法最靈活,各種情況都可以實現。3、可以------解決方案--------------------------------------------------------看能不能直接從JAVA調用的最簡單的方法就是看SO裡的函數名是不是Java_XXX_XXX_XXX格式的是就可以,你可以自己寫一個配套的JAVA檔案,注意一下SO函數名和JAVA函數名的轉換規則,或者向SO提供方索要;不是的話就選第二種方案吧。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.