Question

I'm using Qt to develop a Symbian app.

I downloaded qjson from the link. I followed the instructions in that link and yes, I have the qjson.sis file. Now I need to use it in my app. When I tried, I got this error.

Launch failed: Command answer [command error], 1 values(s) to request: 'C|101|Processes|start|""|"MyProject.exe"|[""]|[]|true' {"Code":-46,Format="Failed to create the process (verify that the executable and all required DLLs have been transferred) (permission denied)"} Error: 'Failed to create the process (verify that the executable and all required DLLs have been transferred) (permission denied)' Code: -46

And when I press the launch icon, it shows, "Unable to execute file for security reasons".

Then I install the qjson.sis in my mobile and then tried to install my app, I got this error.

:-1: error: Installation failed: 'Failed to overwrite file owned by another package: c:\sys\bin\qjson.dll in ' Code: 131073; see http://wiki.forum.nokia.com/index.php/Symbian_OS_Error_Codes for descriptions of the error codes

In my .pro file I have this.

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

symbian: {
LIBS +=  -lqjson
}

Any ideas...?

Was it helpful?

Solution

Ok, I've just resolved a similar issue: it seems that your current build of QJson's library has different UID3 than the previous one that you installed on the phone.

Each .SIS file that is installed on the device has an identifier. The phone OS tracks which file was installed by which packacge, and if some new package wants to overwrite an existing file, the OS checks whether the new package has the same 'identity' than the previous owner of the file to be overwritten.

If the identity does not match, this error pops up.

There are number of reasons why this could have happened. For example, you could have simply changed the UID3 of the QJson before the build. Or, maybe you have forgot to set the library's UID3? Check the "src.pro' in the QJson project and go to the half of the file, you'd see lines:

#TARGET.UID3 = 
TARGET.CAPABILITY = ReadDeviceData WriteDeviceData

If there's #, then you have forgot to set it and the build process assumed, well, letssay 'a random value'. So, now, set it to something, ie. TARGET.UID3 = 0xE0123456. Remember to correct that once you are ready to publish the application.

If a package with broken UID3 gets onto your phone and is blocking something - simply: uninstall it. Go to Settings/Installations/Installed, then find "qjson" and uninstall it. Afterwards, next installtion of qjson should succeed with no problems.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top