來自Go 的Apex 配置中的本機庫載入問題
這個問題的目的是解決為什麼Go 實作會動態附加庫Apex配置中的native_shared_libs 陣列不會導致產生已編譯的.so 檔案。
編寫的 Go 檔案定義了一個條件語句,用於檢查 Android 配置中的 DeviceName。如果裝置名稱與指定條件相符,則會將名為 libabcxtractor 的函式庫附加到 native_shared_libs 陣列中。這樣做的目的是在建置時將庫新增至 Apex 配置。
但是,由於 Go 實作中的疏忽而出現了問題。 Go 中的反射僅允許存取導出的結構體字段,這些字段以大寫字母開頭。在提供的Go檔案中,First結構體中的欄位名稱native_shared_libs被定義為小寫。
因此,當建置過程使用反射存取props結構體時,無法找到native_shared_libs欄位。這會阻止建置系統將附加程式庫合併到 Apex 配置中。
要解決此問題,應將欄位名稱 native_shared_libs 變更為 Native_shared_libs,以便以大寫字母開頭。這將使其成為可透過反射存取的導出欄位。
在 Go 檔案中進行此更改後,建置過程應該能夠成功存取 Native_shared_libs 字段,將 libabcxtractor 附加到數組,從而將程式庫新增至 Apex 配置。然後應該在建置輸出目錄中產生 libabcxtractor 預期的已編譯 .so 檔案。
以上是為什麼我的 Go 實作無法將函式庫附加到 Apex 配置中的「native_shared_libs」陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!