在我的Qt symbian应用程序中使用json

时间:2012-10-03 09:11:41

标签: qt qjson

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

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

启动失败:命令回答[命令错误],要求的1个值:'C | 101 |进程|开始|“”|“MyProject.exe”| [“”] | [] | true' {“Code”: - 46,Format =“无法创建进程(验证可执行文件和所有必需的DLL已被转移)(权限被拒绝)”} 错误:'无法创建进程(验证可执行文件和所有必需的DLL已被转移)(权限被拒绝)'代码:-46

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

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

: - 1:错误:安装失败:'无法覆盖另一个包拥有的文件:'代码:131073中的c:\ sys \ bin \ qjson.dll;有关错误代码的说明,请参阅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
}

任何想法......?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

#TARGET.UID3 = 
TARGET.CAPABILITY = ReadDeviceData WriteDeviceData

如果有#,那么你忘了设置它并假设构建过程,好吧,letssay'随机值'。那么,现在,将它设置为某种东西,即。 TARGET.UID3 = 0xE0123456。一旦准备好发布应用程序,请记得纠正错误。

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