Qt android ndk - 应用程序崩溃

时间:2014-11-28 11:56:38

标签: android qt android-ndk qt-designer qtwidgets

我最近试图在Qt中制作一些非常简单的应用,昨天它曾经在桌面和Android上正常工作 (使用android ndk,我知道用c ++制作Android应用程序并不好,但我只是想试试。)

今天,无处不在,应用程序输出如下所示:error image

我唯一发现的是清理应用程序的缓存和数据,重新启动手机,重建,其中一项工作

1 个答案:

答案 0 :(得分:1)

Qt应用程序在资源中的某处有一个使用过的.so库名称数组。 在启动时,它会加载所有这些.so库(通过 loadLibrary())。 加载库的顺序很重要:函数不能 在尚未加载的库中定义的引用函数。因此,实现循环依赖很棘手。

从日志中我看到了 libszachy_android_1.so中的某个函数(它是正确的名称吗?它有点奇怪)调用尚未加载的 srand();也许,稍后会在加载列表中提到它,但loadLibrary()不知道计划的未来。 因此,你得到了这个。

如果你的代码昨天有效,你可能会做出一些改变。如果您使用版本控制,您可以比较今天的版本和昨天的版本并查看差异。也许,你已经插入了一个前向引用(在加载列表意义上)。 OTOH,有时Eclipse和make都无法检测到源已经发生变化并且构建错误(我确实观察到了这一点,但无法重现)。您是否尝试从手机上卸载应用程序?您是否尝试删除构建目录(rm *.so)中的所有现有.so文件?

也许,你的一个.so模块坏了:有时会生成一个对象,尽管有错误,它可能会在后续构建中使用(至少我可以解释构建故障)。

也许,您的设备上没有内存,并且.so无法正确解压缩。

我建议在root设备上使用adb shell检查应用程序目录。

你发布了一个几乎无法读取的截图。请将其替换为adb logcat输出的相关部分(我希望您知道如何使用它;如果没有,首先要做的是学习adb logcatadb shell)。< / p>