首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android libstagefright.so 移植:廠商預編譯庫覆蓋導致自編譯不生效

     編輯:程式設計綜合問答

修改 `camerasource.cpp` 加水印,編譯 `libstagefright.so` push 到 `/system/lib` 無效果,Log 也無輸出。

根因

廠商構建系統**預先封裝並鎖定** `libstagefright.so`,每次 `make` 會自動從預建目錄複製覆蓋,導致源碼修改編譯出的 `.so` 被丟棄。

解決路徑

  1. 找到 `Android.mk` / `Android.bp` 中 `LOCAL_PREBUILT_LIBS` 或 `prebuilt_shared` 定義,移除或註釋 `libstagefright` 項。
  2. 確保 `BUILD_SHARED_LIBRARY` 流程正常編譯源碼產出 `.so`。
  3. 或直接修改廠商提供的預建 `.so` 來源(若有源碼權限)。

驗證:`mmm frameworks/av/media/libstagefright` 觀察編譯日誌是否顯示 `target SharedLib: libstagefright` 而非 `Prebuilt`。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved