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

5

.so库文件缺少调试符号

我尝试在Buildozer虚拟机中运行我的bin/debug.apk,但是加载adb并通过USB连接我的Android设备时出现问题,因此我将我的bin/debug.apk导出到桌面上,在Android Studio中进行调试。然而,在其第一步中,它会抛出一个错误,要求我用具有调试符号的相同库替换.so库文件。

.so库文件缺少调试符号

在buildozer android debug阶段,这些库是否被存储在Buildozer虚拟机中?

是否有方法可以获取具有符号的库或解决Android Studio或Buildozer VM中没有它们的问题?

2个回答

8

附加本机调试符号

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

要附加可调试的本机库,请按照以下步骤进行:

  1. 如果尚未这样做,请确保下载NDK和工具
  2. 项目窗口中的cpp目录下(仅在选择了Android视图时才可见,如下图所示),双击不包含调试符号的本机库文件。编辑器将显示APK支持的所有ABI的表格。
  3. 单击编辑器窗口右上角的添加按钮。
  4. 导航到包含您想要附加的可调试本机库的目录,并单击确定

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

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

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

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

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

来源


1
我们如何知道包含可调试本地库的目录在哪里,以便进行附加? - Daniel

0

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

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


这是一个Dropbox链接,包含APK的bin文件:https://www.dropbox.com/sh/x5223ugb81ei1n5/AAAOUTyMSNTVtFMG1_1lKYefa?dl=0 - Joshua Harwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接