Kivy Buildozer:.so lib 文件缺少调试符号

Jos*_*ood 5 debugging android kivy android-studio buildozer

.so lib 文件缺少调试符号

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

.so lib 文件缺少调试符号

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

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

Ser*_*ndt 6

附加本机调试符号

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

要附加可调试的本机库,请按以下步骤操作:

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

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

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

提供本地调试符号的路径。

您现在应该在“项目”窗口中看到本机源文件。打开这些本机文件以添加断点并像往常一样调试您的应用程序。您还可以通过单击编辑器窗口的路径映射部分中的清除来删除映射。

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

来源


inc*_*ent 0

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

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