繁体   English   中英

Qt Android NDK-应用程序崩溃

[英]Qt android ndk - app crashes

我最近一直在尝试在Qt制作一些非常简单的应用,而昨天它曾经在台式机和Android上都能正常工作 (使用android ndk,我知道用c ++制作android应用并不好,但我只想尝试)。

如今,应用程序输出无处不在,像这样: 错误图片

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

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

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

如果您的代码昨天有效,则可能已进行了一些更改。 如果使用版本控制,则可能可以比较今天和昨天的版本,并查看两者之间的差异。 也许,您已经插入了一个前向参考(从加载列表的角度来看)。 OTOH,有时Eclipse和make都无法检测到源代码已更改,并且生成的版本不正确(我确实注意到了这一点,但无法复制)。 您是否尝试从手机上卸载该应用程序? 您是否尝试删除了构建目录( rm *.so )中所有现有的.so文件?

也许,您的.so模块之一被破坏了:有时尽管有错误仍会生成一个对象,并且该对象可能会在后续的构建中使用(至少这是我可以解释该构建故障的方式)。

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

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

附注:您张贴的屏幕截图几乎不可读。 请用adb logcat输出的相关部分替换它(希望您知道如何使用它;否则,第一件事是学习adb logcatadb shell )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM