在Apex 中調試本機庫載入
當您在將本機庫載入到apex_defaults multilib 時遇到問題時,重要的是要確保您的.go 檔案被編譯並整合到建置過程中。讓我們深入研究細節。
了解 Go 實作
您建立的 .go 檔案提供了一種動態方式將程式庫附加到 apex_defaults multilib。函數 globalFlags 中的條件語句旨在檢查特定裝置名稱。滿足此條件後,庫“libabcextractor”將被添加到native_shared_libs數組中。
檢查建置編譯
透過驗證確認.go檔案確實已編譯out/soong/.bootstrap 目錄中存在已編譯的 .a 檔案。這證實了它已整合到建置過程中。
可能的問題來源
經過進一步檢查,確保匯出 .go 檔案中的結構體欄位至關重要(大寫)。由於建構過程利用反射來讀取結構體字段,因此未導出的字段仍然無法存取。
解決問題
在您的第一個結構體中,應透過大寫來匯出native_shared_libs欄位就像這樣:
<code class="go">type props struct { Multilib struct { First struct { Native_shared_libs []string } } }</code>
為什麼重要?
使用未匯出的結構體欄位會阻止建構過程使用反射獲取資訊。透過匯出字段,建置過程可以使用必要的庫成功存取和更新native_shared_libs數組。
以上是為什麼我無法在 Apex_defaults Multilib 中載入我的本機庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!