在 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中文网其他相关文章!