语言

Menu
Sites
Language
Application sometimes fails to launch

I have a fully native application, which is built with a custom build system (not Makefiles and not built inside Tizen IDE). The application is a cross platform game, using OpenGL for the graphics. Most of the time it installs, launches and runs without problems, but sometimes it fails to launch. Not much information is provided (no dialogs come up on screen), and the log just contains:

10-08 17:06:08.335 : ERROR / Tizen::Base::Collection ( 2709 : 2709 ) : virtual const Tizen::Base::Object* Tizen::Base::Collection::ArrayList::GetAt(int) const(238) > [E_OUT_OF_RANGE] The index(2) MUST be greater than or equal to 0 and less than the number of elements(2).
10-08 17:06:08.540 : ERROR / Tizen::Ui ( 2880 : 2880 ) : bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
10-08 17:06:08.545 : ERROR / Tizen::Text ( 2880 : 2880 ) : static Tizen::Text::_EncodingCore* Tizen::Text::_Ucs2EncodingCore::GetEncodingCoreImplN(const Tizen::Base::String&, const Tizen::Base::String&)(60) > [E_UNSUPPORTED_TYPE] It is not the UCS2 type.
10-08 17:06:08.545 : ERROR / Tizen::Text ( 2880 : 2880 ) : static Tizen::Text::_EncodingCore* Tizen::Text::_Ucs2EncodingCore::GetEncodingCoreImplN(const Tizen::Base::String&, const Tizen::Base::String&)(60) > [E_UNSUPPORTED_TYPE] It is not the UCS2 type.
10-08 17:06:12.260 : ERROR / Tizen::Base::Collection ( 2709 : 2709 ) : virtual result Tizen::Base::Collection::ArrayList::IndexOf(const Tizen::Base::Object&, int, int, int&) const(290) > [E_OBJ_NOT_FOUND] The arraylist is empty.
10-08 17:06:12.260 : ERROR / Tizen::Base::Collection ( 2709 : 2709 ) : virtual result Tizen::Base::Collection::ArrayList::Remove(const Tizen::Base::Object&)(393) > [E_OBJ_NOT_FOUND] Propagating.
10-08 17:06:12.600 : ERROR / Tizen::App ( 2709 : 2709 ) : virtual void Tizen::App::_ContextManager::OnApplicationTerminated(const Tizen::App::AppId&, int)(477) > Not registered pid(2880)

If I keep clicking on the application, it can be a bit stubborn, but normally it ends up launching, at which point the log looks more like:

10-08 17:08:33.125 : ERROR / Tizen::Base::Collection ( 2709 : 2709 ) : virtual const Tizen::Base::Object* Tizen::Base::Collection::ArrayList::GetAt(int) const(238) > [E_OUT_OF_RANGE] The index(2) MUST be greater than or equal to 0 and less than the number of elements(2).
10-08 17:08:33.305 : ERROR / Tizen::Ui ( 3057 : 3057 ) : bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
10-08 17:08:33.305 : ERROR / Tizen::Text ( 3057 : 3057 ) : static Tizen::Text::_EncodingCore* Tizen::Text::_Ucs2EncodingCore::GetEncodingCoreImplN(const Tizen::Base::String&, const Tizen::Base::String&)(60) > [E_UNSUPPORTED_TYPE] It is not the UCS2 type.
10-08 17:08:33.305 : ERROR / Tizen::Text ( 3057 : 3057 ) : static Tizen::Text::_EncodingCore* Tizen::Text::_Ucs2EncodingCore::GetEncodingCoreImplN(const Tizen::Base::String&, const Tizen::Base::String&)(60) > [E_UNSUPPORTED_TYPE] It is not the UCS2 type.

So the first difference when it fails is this talk about ArrayList IndexOf/Remove being out of bounds. I don't know where this is coming form or why it only happens on occassions. As I am not using the Tizen IDE/Makefiles to build, the usual suggested solutions of cleaning, deleting, rebuilding aren't too helpful. This can happen when everything is built cleanly from scratch.

Depending on the party, it maybe possible for me to share an example of an application that fails to launch if that is helpful.

I have this same issue occuring on various applications.

I am running on a development device running Tizen 2.2, built against the 2.2 toolchain.

响应

2 回复

I think you should ask tizen developers directly by reporting a bug to (https://bugs.tizen.org)

I have done it several time and they have been able to solve several issues.. sometimes it was a bug, othertime it was missunderstanding from me.

 

 

 

 

Steven Craft

The problem turns out to be with:

glTexImage2D

We found that this function can kill the application (doesn't mention a crash in the logs, the application just seems to die). Specifically, this function seems to misbehave whe uploading single channel, 8 bit, alpha images (image format GL_ALPHA, GL_UNSIGNED_BYTE). This function was part of our initialisation routine, and would sometimes kill the application so it failed to start. On top of this, this function would sometimes kill the application in midflow.

We have worked around this by not uploading 8 bit images, instead we convert 8 bit images into 32 bit images (luckily we already have this code path around for other platforms).