【问题标题】:Kivy Buildozer: .so lib files missing debug symbolsKivy Buildozer:.so lib 文件缺少调试符号
【发布时间】:2018-08-29 14:37:08
【问题描述】:

.so lib 文件缺少调试符号

所以我尝试让我的 bin/debug.apk 在 Buildozer VM 中工作,但是在加载 adb 和通过 USB 连接我的 Android 设备时出现问题,所以我将我的 bin/debug.apk 导出到我的桌面进行调试它在 Android Studio 中。但是,在第一步中,它会引发一个错误,要求我将 .so 库替换为具有调试符号的相同库。

.so lib files missing debug symbols

这些是否在 buildozer android 调试阶段隐藏在 Buildozer VM 中的任何位置?

有没有办法获取带有符号的库,或者解决在 Android Studio 或 Buildozer VM 上没有它们的问题?

【问题讨论】:

    标签: android android-studio debugging kivy buildozer


    【解决方案1】:

    附加原生调试符号

    如果您的 APK 包含不包含调试符号的本机库(.so 文件),IDE 会在 消息 窗口中向您显示警告。如果不附加可调试的本机库,则无法调试 APK 的本机代码或使用断点。

    要附加可调试的本机库,请执行以下操作:

    1. 如果您还没有这样做,请确保download the NDK and tools
    2. Project窗口的cpp目录下(只有选中Android视图才可见,如下图),双击不包含调试符号的本机库文件。编辑器会显示您的 APK 支持的所有 ABI 的表格。
    3. 点击编辑器窗口右上角的添加
    4. 导航到包含要附加的可调试本机库的目录,然后单击 好的

    如果 APK 和可调试的原生库是使用不同的工作站构建的,您还需要按照以下步骤指定本地调试符号的路径:

    1. 通过编辑编辑器窗口Path Mappings部分的Local Paths列下的字段,为缺少的调试符号添加本地路径,如下图所示。 在大多数情况下,您只需提供根文件夹的路径,Android Studio 会自动检查子目录以映射其他源。 IDE 还会自动将远程 NDK 的路径映射到本地 NDK 下载。
    2. 点击编辑器窗口路径映射部分中的Apply Changes

    您现在应该在 Project 窗口中看到原生源文件。像往常一样打开这些本机文件以添加断点和debug your app。您还可以通过单击编辑器窗口的路径映射部分中的清除来删除映射。

    已知问题:将调试符号附加到 APK 时,APK 和可调试的 .so files 必须使用相同的工作站或构建服务器构建。

    Source

    【讨论】:

    • 我们如何知道包含您要附加​​的可调试本机库的目录在哪里
    【解决方案2】:

    我认为这些符号在构建过程的配方部分被 python-for-android 剥离。防止这种情况可能并不难(或者最好添加一个禁用它的选项),但我认为目前还没有。

    如果您使用 apk 发布错误,我们或许可以帮助调试它,我通常不会看到需要调试符号来解决的问题。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多