语言

Menu
Sites
Language
Error in Terminating Application in Tizen 2.2.1

Hi,

Our Native app was suspended in the Tizen App Store, with the below details:

Dear Seller, 

Unfortunately, the application that you uploaded is suspended because this application can not used properly on new binary. Please re-summit it after developing it using new SDK. 
(https://developer.tizen.org) 

Below is defects on the application. 

[Defect] 
The application has failed to terminate. Please check the failure log. 

[Procedure] 
1. Run the application. 
2. Terminate the application. 

[Expected Result] 
The application must be terminated properly without causing any errors. 

Thank you for your generous understanding. 
Tizen Validation Team.

I updated the SDK using the Tizen Install Manager and then re-build the package. However, when I try to build, it still says Tizen 2.2 under Project Properties > C/C++ Build > Tizen Settings > Platform > Platform/Name

I tested this new package on Remote Test Lab, but it still Forced Stopped unexpectedly on pressing Back Button, with nothing out of the expected in the logs. 

Please suggest how do I rectify this error?

 

编辑者为: Brock Boland 17 3月, 2014 原因: Paragraph tags added automatically from tizen_format_fix module.

响应

9 回复
Khyati Majmudar

The Error Logs gives the below:

ERROR|01-08 02:01:47.740|2733|2733||Tizen::Base::Collection|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).
ERROR|01-08 02:01:47.780|15738|15738||Tizen::Ui|Tizen::Ui::_UiBuilderControl* Tizen::Ui::_UiBuilder::GetControl(int) const(83) > Failed to GetControl()
ERROR|01-08 02:01:47.780|15738|15738||SpirO|result Tizen::Base::Collection::ArrayListT<Type>::GetAt(int, Type&) [with Type = Tizen::Ui::_UiBuilderControl*, result = long unsigned int](361) > [E_OUT_OF_RANGE] The index(20) MUST be greater than or equal to 0 and less than the number of elements(20).
ERROR|01-08 02:01:47.800|15738|15738||Tizen::App|virtual Tizen::Graphics::Bitmap* Tizen::App::_AppResourceBitmap::GetBitmapN(const Tizen::Base::String&, Tizen::Graphics::BitmapPixelFormat, bool) const(84) > [E_FILE_NOT_FOUND] The specified file does not exist.
ERROR|01-08 02:01:47.915|15738|15738||SpirO|result Tizen::Base::Collection::ArrayListT<Type>::GetAt(int, Type&) [with Type = Tizen::Ui::_UiBuilderControl*, result = long unsigned int](361) > [E_OUT_OF_RANGE] The index(12) MUST be greater than or equal to 0 and less than the number of elements(12).
ERROR|01-08 02:01:47.915|15738|15738||Tizen::Ui|Tizen::Ui::_UiBuilderControl* Tizen::Ui::_UiBuilder::GetControl(int) const(83) > Failed to GetControl()
ERROR|01-08 02:01:47.920|15738|15738||Tizen::App|virtual Tizen::Graphics::Bitmap* Tizen::App::_AppResourceBitmap::GetBitmapN(const Tizen::Base::String&, Tizen::Graphics::BitmapPixelFormat, bool) const(84) > [E_FILE_NOT_FOUND] The specified file does not exist.
ERROR|01-08 02:01:48.100|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.125|15738|15738||Tizen::Graphics|static Tizen::Graphics::Bitmap* Tizen::Graphics::_BitmapImpl::CloneN(const Tizen::Graphics::Bitmap&)(1934) > [E_INVALID_ARG] The given bitmap is invalid (null reference passed)
ERROR|01-08 02:01:48.125|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.125|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.125|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.125|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.130|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.130|15738|15738||Tizen::Graphics|static Tizen::Graphics::Bitmap* Tizen::Graphics::_BitmapImpl::CloneN(const Tizen::Graphics::Bitmap&)(1934) > [E_INVALID_ARG] The given bitmap is invalid (null reference passed)
ERROR|01-08 02:01:48.130|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.135|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.135|15738|15738||Tizen::Graphics|static Tizen::Graphics::Bitmap* Tizen::Graphics::_BitmapImpl::CloneN(const Tizen::Graphics::Bitmap&)(1934) > [E_INVALID_ARG] The given bitmap is invalid (null reference passed)
ERROR|01-08 02:01:48.135|15738|15738||Tizen::Graphics|static Tizen::Graphics::Bitmap* Tizen::Graphics::_BitmapImpl::CloneN(const Tizen::Graphics::Bitmap&)(1934) > [E_INVALID_ARG] The given bitmap is invalid (null reference passed)
ERROR|01-08 02:01:48.135|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.145|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:01:48.145|15738|15738||Tizen::Graphics|static Tizen::Graphics::Bitmap* Tizen::Graphics::_BitmapImpl::CloneN(const Tizen::Graphics::Bitmap&)(1934) > [E_INVALID_ARG] The given bitmap is invalid (null reference passed)
ERROR|01-08 02:01:48.470|15738|15738||Tizen::Ui::Controls|virtual void Tizen::Ui::Controls::_Popup::OnDraw()(461) > [E_INVALID_STATE] Propagating.
ERROR|01-08 02:01:48.470|15738|15738||Tizen::Ui::Controls|virtual void Tizen::Ui::Controls::_PopupPresenter::Draw()(434) > [E_INVALID_STATE] Propagating.
ERROR|01-08 02:01:48.470|15738|15738||Tizen::Ui::Animations|Tizen::Graphics::Canvas* Tizen::Ui::Animations::_VisualElementImpl::GetCanvasN(const Tizen::Graphics::FloatRectangle&)(3572) > [E_INVALID_STATE] VisualElement is not attached to main tree.
ERROR|01-08 02:01:48.485|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_ColorPickerPresenter::MoveHandler(Tizen::Ui::Controls::_ColorPickerComponentType)(1260) > [E_SYSTEM] A system error has occurred. Failed to get the handler.
ERROR|01-08 02:01:48.490|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_ColorPickerPresenter::MoveHandler(Tizen::Ui::Controls::_ColorPickerComponentType)(1260) > [E_SYSTEM] A system error has occurred. Failed to get the handler.
ERROR|01-08 02:01:48.495|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_ColorPickerPresenter::MoveHandler(Tizen::Ui::Controls::_ColorPickerComponentType)(1260) > [E_SYSTEM] A system error has occurred. Failed to get the handler.
ERROR|01-08 02:01:48.510|15738|15738||Tizen::Ui::Animations|Tizen::Graphics::Canvas* Tizen::Ui::Animations::_VisualElementImpl::GetCanvasN(const Tizen::Graphics::FloatRectangle&)(3572) > [E_INVALID_STATE] VisualElement is not attached to main tree.
ERROR|01-08 02:01:48.510|15738|15738||Tizen::Ui::Controls|virtual void Tizen::Ui::Controls::_Popup::OnDraw()(461) > [E_INVALID_STATE] Propagating.
ERROR|01-08 02:01:48.510|15738|15738||Tizen::Ui::Controls|virtual void Tizen::Ui::Controls::_PopupPresenter::Draw()(434) > [E_INVALID_STATE] Propagating.
ERROR|01-08 02:01:48.525|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:0.000000) is out of range.
ERROR|01-08 02:01:48.525|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:96.000000) is out of range.
ERROR|01-08 02:01:48.530|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:96.000000) is out of range.
ERROR|01-08 02:01:48.530|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:0.000000) is out of range.
ERROR|01-08 02:01:48.535|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:96.000000) is out of range.
ERROR|01-08 02:01:48.535|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:0.000000) is out of range.
ERROR|01-08 02:01:48.540|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:96.000000) is out of range.
ERROR|01-08 02:01:48.540|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:0.000000) is out of range.
ERROR|01-08 02:01:48.540|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:96.000000) is out of range.
ERROR|01-08 02:01:48.545|15738|15738||Tizen::Ui::Controls|virtual void Tizen::Ui::Controls::_Popup::OnDraw()(461) > [E_INVALID_STATE] Propagating.
ERROR|01-08 02:01:48.545|15738|15738||Tizen::Graphics|result Tizen::Graphics::_Text::TextObject::SetBounds(const Tizen::Graphics::FloatRectangle&)(1132) > [E_OUT_OF_RANGE] The given rectangle(width:-35.000000,height:0.000000) is out of range.
ERROR|01-08 02:01:48.545|15738|15738||Tizen::Ui::Animations|Tizen::Graphics::Canvas* Tizen::Ui::Animations::_VisualElementImpl::GetCanvasN(const Tizen::Graphics::FloatRectangle&)(3572) > [E_INVALID_STATE] VisualElement is not attached to main tree.
ERROR|01-08 02:01:48.545|15738|15738||Tizen::Ui::Controls|virtual void Tizen::Ui::Controls::_PopupPresenter::Draw()(434) > [E_INVALID_STATE] Propagating.
ERROR|01-08 02:02:07.280|15738|15738||Tizen::Ui|bool Tizen::Ui::_Control::IsVisible() const(2943) > [E_SYSTEM] This control should be attached to the main tree.
ERROR|01-08 02:02:07.290|15738|15738||Tizen::Ui::Controls|void Tizen::Ui::Controls::_ScrollPanel::RemoveScrollEventListener(const Tizen::Ui::Controls::_IScrollEventListener&)(853) > [E_SYSTEM] __pScrollEvent is invalid pointer.
ERROR|01-08 02:02:07.290|15738|15738||Tizen::Ui|result Tizen::Ui::_Control::DetachChild(Tizen::Ui::_Control&)(2038) > [E_INVALID_ARG] Not my child.
ERROR|01-08 02:02:07.290|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_Toolbar::StopWaitingAnimation(Tizen::Ui::Controls::ToolbarAnimationPosition)(3173) > [E_INVALID_STATE] [E_INVALID_STATE] __pAnimation isn't constructed.
ERROR|01-08 02:02:07.295|15738|15738||Tizen::Ui|result Tizen::Ui::_Control::DetachChild(Tizen::Ui::_Control&)(2038) > [E_INVALID_ARG] Not my child.
ERROR|01-08 02:02:07.295|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_Toolbar::StopWaitingAnimation(Tizen::Ui::Controls::ToolbarAnimationPosition)(3173) > [E_INVALID_STATE] [E_INVALID_STATE] __pAnimation isn't constructed.
ERROR|01-08 02:02:07.295|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_Toolbar::StopWaitingAnimation(Tizen::Ui::Controls::ToolbarAnimationPosition)(3173) > [E_INVALID_STATE] [E_INVALID_STATE] __pAnimation isn't constructed.
ERROR|01-08 02:02:07.295|15738|15738||Tizen::Ui|result Tizen::Ui::_Control::DetachChild(Tizen::Ui::_Control&)(2038) > [E_INVALID_ARG] Not my child.
ERROR|01-08 02:02:07.295|15738|15738||Tizen::Ui::Controls|result Tizen::Ui::Controls::_Toolbar::StopWaitingAnimation(Tizen::Ui::Controls::ToolbarAnimationPosition)(3173) > [E_INVALID_STATE] [E_INVALID_STATE] __pAnimation isn't constructed.
ERROR|01-08 02:02:07.295|15738|15738||Tizen::Ui|result Tizen::Ui::_Control::DetachChild(Tizen::Ui::_Control&)(2038) > [E_INVALID_ARG] Not my child.
ERROR|01-08 02:02:08.640|2733|2733||Tizen::Base::Collection|virtual result Tizen::Base::Collection::ArrayList::IndexOf(const Tizen::Base::Object&, int, int, int&) const(290) > [E_OBJ_NOT_FOUND] The arraylist is empty.
ERROR|01-08 02:02:08.640|2733|2733||Tizen::Base::Collection|virtual result Tizen::Base::Collection::ArrayList::Remove(const Tizen::Base::Object&)(393) > [E_OBJ_NOT_FOUND] Propagating.
ERROR|01-08 02:02:08.660|2733|2733||Tizen::Io|result Tizen::Io::_DbEnumeratorImpl::GetIntAt(int, int&) const(810) > [E_TYPE_MISMATCH] Trying to access column of different type.
ERROR|01-08 02:02:08.660|2733|2733||Tizen::Io|result Tizen::Io::_DbEnumeratorImpl::GetStringAt(int, Tizen::Base::String&) const(879) > [E_TYPE_MISMATCH] Trying to access column of different type.
ERROR|01-08 02:02:08.660|2733|2733||Tizen::Io|result Tizen::Io::_DbEnumeratorImpl::GetStringAt(int, Tizen::Base::String&) const(879) > [E_TYPE_MISMATCH] Trying to access column of different type.

 

Athar Nouman

Any progress on this thread?

Alex Ashirov

Hi,

“Tizen 2.2 under Project Properties > C/C++ Build > Tizen Settings > Platform > Platform/Name” is ok for SDK v.2.2.1. The both SDKs 2.2.0 and 2.2.1 have the same platform name.

Gary V

Hi,

Make sure to have the topmost (root) Form handle the Back button explicitly for termination (as opposed to executing SceneManager::GoBackward()).

void FormTopmost::OnFormBackRequested(Form& source)
{
    UiApp* pApp = UiApp::GetInstance();
    AppAssert(pApp);

    pApp->Terminate();
}

Also, you might want to uninstall the SDK completely, removing all its directories and re-install clean from a re-downloaded 2.2.1 distribution.

Other than that, it might be some kind of destruction error: perhaps shared resource deletion, multiple object deletion, the works - something like that never shows up in the log, but causes a segmentation fault. Valgrind it.

https://developer.tizen.org/dev-guide/2.2.1/org.tizen.native.appprogramming/html/app_dev_process/running_valgrind.htm

Gary

You have to clean the app. You have object you forget to delete in the OnTerminating method. This object could be instance of bitmap, popup, keypad, database etc..

The app force close because this instance was not cleaned probably

 

Tiny Son
Hello, So as comments above, to fix it, we have to upgrade the SDK and do sth on OnTerminating method to free resources?? Tks Tiny
Gary V

Tiny,

The SDK uninstall/re-install is most likely optional and for "refresh" purposes only.

When it comes to controlling resources, it is not a question specific to Tizen development, but rather a general C++ development issue. Yes, you should explicitly control memory and resources and de-allocate in a predictable manner, which will eliminate crashes. Try C++ topics such as "Resource Acquisition Is Initialization" and "Smart Pointers". You can also try to use tools such as Valgrind to try to find the exact source of the crash.

Gary

Tiny Son
Hi GaryV, Finally i found the thread caused the crash. The thread still do sth although app is terminated. And when a func in thread need to refer to a var in currenr thread, the crash happened. Dun know why it happened. I tried to kill the thread in onTerminating method, pluz add Thread.sleep(3000). With it, the crash has gone. I think there will be a better way?
Gary V

Tiny,

Have a look at thread management questions at Stack Overflow, for example "Do child threads exit when the parent thread terminates" and/or Dr.Dobb's "Interrupt Politely".

G.