在我的Qt符号应用程序中使用qjson



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

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

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

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

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

:-1:错误:安装失败:"无法覆盖另一个包拥有的文件:c:\sys\bin\qjson.dll in"代码: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
}

有什么想法吗。。。?

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

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

如果标识不匹配,则会弹出此错误。

发生这种情况的原因有很多。例如,您可以在构建之前简单地更改QJson的UID3。或者,您可能忘记了设置库的UID3?检查QJson项目中的"src.pro",然后转到文件的一半,你会看到行:

#TARGET.UID3 = 
TARGET.CAPABILITY = ReadDeviceData WriteDeviceData

如果有#,那么您忘记了设置它,并且构建过程假设,好吧,让"一个随机值"。所以,现在,将其设置为某个值,即TARGET.UID3 = 0xE0123456。请记住,一旦您准备好发布应用程序,就要进行更正。

如果一个UID3坏了的包进入你的手机并阻止了什么-简单地:卸载它。转到Settings/Installations/Installed,然后找到"qjson"并卸载它。之后,qjson的下一次安装应该会顺利完成。

最新更新