1

我正在使用 Qt 开发 Symbian 应用程序。

我从链接下载了 qjson 。我按照该链接中的说明进行操作,是的,我有 qjson.sis 文件。现在我需要在我的应用程序中使用它。当我尝试时,我得到了这个错误。

启动失败:命令答案 [命令错误],要请求 1 个值:'C|101|Processes|start|""|"MyProject.exe"|[""]|[]|true' {"Code" :-46,Format="Failed to create the process (验证可执行文件和所有必需的 DLL 已被传输) (权限被拒绝)"} 错误:'创建进程失败(验证可执行文件和所有必需的 DLL 已被传送)转移)(权限被拒绝)'代码:-46

当我按下启动图标时,它显示“出于安全原因无法执行文件”。

然后我在我的手机中安装了 qjson.sis,然后尝试安装我的应用程序,我收到了这个错误。

:-1: 错误:安装失败:'无法覆盖另一个包拥有的文件:c:\sys\bin\qjson.dll 在'代码:131073; 有关错误代码的说明,请参见http://wiki.forum.nokia.com/index.php/Symbian_OS_Error_Codes

在我的 .pro 文件中,我有这个。

symbian: {
addFiles.sources = qjson.dll
addFiles.path = /sys/bin
DEPLOYMENT += addFiles
}

symbian: {
LIBS +=  -lqjson
}

有任何想法吗...?

4

1 回答 1

0

好的,我刚刚解决了一个类似的问题:您当前构建的 QJson 库的 UID3 似乎与您在手机上安装的前一个不同。

安装在设备上的每个 .SIS 文件都有一个标识符。手机操作系统跟踪哪个包安装了哪个文件,如果某个新包想要覆盖现有文件,则操作系统会检查新包是否具有与要覆盖的文件的先前所有者相同的“身份”。

如果身份不匹配,则会弹出此错误。

这可能发生的原因有很多。例如,您可以在构建之前简单地更改 QJson 的 UID3。或者,也许您忘记设置库的 UID3?检查 QJson 项目中的“src.pro”并转到文件的一半,您会看到以下行:

#TARGET.UID3 = 
TARGET.CAPABILITY = ReadDeviceData WriteDeviceData

如果有 #,那么您忘记设置它并且假设构建过程,好吧,让我们说“随机值”。所以,现在,将它设置为某种东西,即。TARGET.UID3 = 0xE0123456. 请记住在准备好发布应用程序后进行更正。

如果 UID3 损坏的程序包进入您的手机并阻止某些内容 - 只需:卸载它。转到Settings/Installations/Installed,然后找到“qjson”并卸载它。之后,qjson 的下一次安装应该没有问题成功。

于 2012-10-04T12:50:29.787 回答