Electronic device and method of operation thereof

The electronic device addresses the inconvenience of application crashes by analyzing error information, identifying causes, and providing compatible solutions to users, thus enhancing user experience.

JP2025507272APending Publication Date: 2025-03-18SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024545202
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-02-04
Filing Date
2022-12-12
Publication Date
2025-03-18

AI Technical Summary

Technical Problem

Traditional electronic devices do not provide users with solutions, information about errors, or error history when an application crashes, leading to inconvenience.

Method used

An electronic device equipped with a processor, memory, and a reference data set that analyzes error information, identifies error types and causes, and provides users with compatible solutions via a display.

Benefits of technology

The device minimizes user inconvenience by providing error analysis, solutions, and error history, ensuring that users can effectively address application crashes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025507272000001_ABST
    Figure 2025507272000001_ABST
Patent Text Reader

Abstract

An electronic device is disclosed that includes a processor, which acquires error information based on an error occurring in a first application executed by the processor, determines a type of the error and a cause of the error based on the acquired error information, acquires a solution for solving the error from a reference dataset using the type of the error and the cause of the error, verifies suitability of the acquired solution based on status information of the electronic device, and provides guidance to a user for the acquired solution via a display based on the acquired solution that is verified as suitable.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] One embodiment relates to an electronic device (eg, a smartphone) and one or more applications stored on the electronic device. [Background technology]

[0002] The electronic device may store one or more applications that can be used by a user.

[0003] An error in an application that a user is using can cause a crash, which can force the application to be terminated. DISCLOSURE OF THEINVENTION [Problem to be solved by the invention]

[0004] When an application in use is forcibly terminated, the conventional electronic device does not provide the user with a solution, information about the error, or an error history, which causes inconvenience to the user.

[0005] One implementation is to provide an electronic device that can analyze the cause of an error (or the cause of a crash) in an application and provide a solution to the user.

[0006] One embodiment is to provide an electronic device that can provide a user with the cause and history of an application error when an application crash occurs, thereby minimizing (or reducing) the inconvenience to the user.

[0007] One implementation is to provide an electronic device that can guide a user to update an application if the application error cannot be resolved.

[0008] In this document, the technical problem to be achieved is not limited to the technical problem mentioned above, and further technical problems not mentioned will be clearly understood by a person having ordinary skill in the art to which the present invention pertains from the description below. [Means for solving the problem]

[0009] According to one aspect of the disclosure, an electronic device may include a display, a processor, and a memory operatively connected to the processor and storing one or more instructions executed by the processor. When the instructions are executed, the processor may obtain error information based on an error occurring in a first application executed by the processor, determine a type of the error and a cause of the error based on the obtained error information, obtain a solution for solving the error from a reference data set using the determined type of the error and the determined cause of the error, verify the suitability of the obtained solution based on status information of the electronic device, and provide a user with guidance for the obtained solution via the display based on the obtained solution verified to be suitable. The reference data set may include one or more error types, one or more causes of the error, and one or more error solving methods.

[0010] According to another aspect of the disclosure, an electronic device may include a display, a processor, and a memory operatively coupled to the processor and configured to store a reference data set and one or more applications. The reference data set may include a plurality of error types, a plurality of error causes, and a plurality of error solving methods. The memory may store instructions to be executed by the processor. When the instructions are executed, the processor may include a processor that acquires error information based on an error occurring in a first application being executed, determines whether the first application is a third-party application based on the acquired error information, determines a type of the error and a cause of the error from the acquired error information based on the determination that the first application is a third-party application, acquires a solution for solving the error from the reference data set using the acquired type and the acquired cause, verifies suitability of the acquired solution based on status information of the electronic device, and if the acquired solution is verified to be suitable, displays a pop-up window on the display for guidance regarding the acquired solution.

[0011] According to another aspect of the disclosure, a method for operating an electronic device may include the steps of: acquiring error information based on an error occurring in a first application being executed; determining a type of the error and a cause of the error from the acquired error information; acquiring a solution for solving the error from a reference data set using the determined type and the determined cause; verifying suitability of the acquired solution based on status information of the electronic device; and providing a user with guidance on the acquired solution via a display based on the acquired solution verified to be suitable. The reference data set may include one or more error types, one or more causes of the error, and one or more solutions to the error.

[0012] According to another aspect of the disclosure, an electronic device may include a display, a processor, and a memory operatively coupled to the processor. The memory may store one or more instructions that, when executed by the processor, may cause the processor to: obtain error information based on an error occurring in a first application executed by the processor; analyze status information of the electronic device for a time interval between a first time instance and a second time instance at which the error occurs in the first application, where the first time instance is a time instance shorter than the second time instance; determine a status of the electronic device based on the analyzed status information of the electronic device; determine an exception type or a cause of the error from the obtained error information; and obtain one or more solutions corresponding to the error from a database based on at least one of (i) the determined error type or (ii) the determined cause of the error and the determined status of the electronic device.

[0013] In addition, various other effects may be provided that can be grasped directly or indirectly through this document. [Brief description of the drawings]

[0014] [Figure 1] 1 illustrates a block diagram of an electronic device in a network environment according to one implementation. [Diagram 2] FIG. 1 is a block diagram illustrating a program according to one implementation. [Diagram 3] FIG. 1 is a block diagram illustrating an example of an electronic device according to one embodiment. [Figure 4] FIG. 2 is a diagram illustrating an example of an operating system framework and system applications of an electronic device according to one implementation. [Diagram 5] FIG. 13 is a diagram illustrating another example in which an electronic device obtains an error solution from a DB according to an embodiment. [Figure 6] FIG. 13 is a diagram for explaining a further example in which an electronic device obtains an error resolution method from a DB according to one implementation. [Figure 7] 1 is a flowchart illustrating an example of a method for providing a solution when an application crash occurs in an electronic device according to an embodiment. [Figure 8] FIG. 10 is a diagram illustrating an example of a pop-up window on an electronic device according to one implementation. [Figure 9] FIG. 10 is a diagram illustrating an example of a pop-up window on an electronic device according to one implementation. [Figure 10] FIG. 10 is a diagram illustrating an example of a pop-up window on an electronic device according to one implementation. [Figure 11] FIG. 13 is a diagram illustrating an example of changing the order of solutions acquired by an electronic device according to an embodiment. [Figure 12] FIG. 13 is a diagram illustrating an example of changing the order of solutions acquired by an electronic device according to an embodiment. [Figure 13] 1 is a flowchart illustrating an example of a method of operating an electronic device according to one implementation. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals will be used to refer to the same elements regardless of the reference numerals, and duplicated description thereof will be omitted.

[0016] FIG. 1 is a block diagram of an electronic device 101 in a network environment 100 according to an embodiment. Referring to FIG. 1, in the network environment 100, the electronic device 101 can communicate with the electronic device 102 via a first network 198 (e.g., a short-range wireless communication network) or with at least one of the electronic device 104 or the server 108 via a second network 199 (e.g., a long-range wireless communication network). According to an embodiment, the electronic device 101 communicates with the electronic device 104 via the server 108. According to an embodiment, the electronic device 101 includes a processor 120, a memory 130, an input module 150, an acoustic output module 155, a display module 160, an audio module 170, a sensor module 176, an interface 177, a connecting terminal 178, a haptic module 179, a camera module 180, a power management module 188, a battery 189, a communication module 190, a subscriber identity module 196, or an antenna module 197. In any embodiment, at least one of the components (e.g., the connecting terminal 178) may be omitted or one or more other components may be added to the electronic device 101. In any embodiment, some of the components (e.g., the sensor module 176, the camera module 180, or the antenna module 197) may be integrated into one component (e.g., the display module 160).

[0017] The processor 120 may, for example, execute software (e.g., program 140) to control at least one other component (e.g., hardware or software component) of the electronic device 101 connected to the processor 120 and perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculation, the processor 120 may store instructions or data received from other components (e.g., the sensor module 176 or the communication module 190) in the volatile memory 132, process the instructions or data stored in the volatile memory 132, and store the result data in the non-volatile memory 134. According to one embodiment, the processor 120 may include a main processor 121 (e.g., a central processing unit or an application processor) or an auxiliary processor 123 (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processing unit, a sensor hub processor, or a communication processor) that may operate independently or together with the main processor 121. For example, when the electronic device 101 includes the main processor 121 and the auxiliary processor 123, the auxiliary processor 123 may be configured to use less power than the main processor 121 or to be dedicated to a designated function. The auxiliary processor 123 may be implemented separately from the main processor 121 or as part of it.

[0018] The auxiliary processor 123 may control at least a part of the functions or states of at least one of the components of the electronic device 101 (e.g., the display module 160, the sensor module 176, or the communication module 190), for example, instead of the main processor 121 while the main processor 121 is in an inactive (e.g., slip) state, or together with the main processor 121 while the main processor 121 is in an active (e.g., application execution) state. According to an embodiment, the auxiliary processor 123 (e.g., an image signal processing unit or a communication processor) may be realized as a part of a different functionally related component (e.g., the camera module 180 or the communication module 190). According to an embodiment, the auxiliary processor 123 (e.g., a neural network processing unit) may include a hardware structure specialized for processing the artificial intelligence model. The artificial intelligence model may be generated via machine learning. Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is executed, or may be performed via a separate server (e.g., the server 108). The learning algorithm may include, but is not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning. The artificial intelligence model may include multiple artificial neural network layers. The artificial neural network may be one of, but is not limited to, a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRRDNN), a deep Q-network, or a combination of two or more of the above.The artificial intelligence model may include software structures in addition to or instead of hardware structures.

[0019] The memory 130 stores various data used by at least one component (e.g., the processor 120 or the sensor module 176) of the electronic device 101. The data may include, for example, input data or output data for software (e.g., the program 140) and instructions related thereto. The memory 130 includes a volatile memory 132 or a non-volatile memory 134.

[0020] Programs 140 are stored as software in memory 130 and include, for example, an operating system 142 , middleware 144 or applications 146 .

[0021] Input module 150 receives instructions or data from outside (e.g., a user) electronic device 101 for use by components (e.g., processor 120) of electronic device 101. Input module 150 may include, for example, a microphone, a mouse, a keyboard, keys (e.g., buttons), or a digital pen (e.g., a stylus pen).

[0022] The audio output module 155 outputs an audio signal outside the electronic device 101. The audio output module 155 may include, for example, a speaker or a receiver. The speaker may be used for general purposes such as multimedia playback or recording playback. The receiver is used to receive incoming phone calls. According to one embodiment, the receiver may be implemented separately from or as part of the speaker.

[0023] The display module 160 visually presents information to an external (e.g., user) of the electronic device 101. The display module 160 may include, for example, a display, a holographic device, or a projector and control circuitry for controlling the device. According to one embodiment, the display module 160 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the strength of a force generated by the touch.

[0024] Audio module 170 converts sound into electrical signals and vice versa. According to one embodiment, audio module 170 can receive sound via input module 150 and output sound via audio output module 155 or an external electronic device (e.g., electronic device 102) (e.g., a speaker or headphones) connected directly or wirelessly to electronic device 101.

[0025] The sensor module 176 detects an operating state (e.g., power or temperature) of the electronic device 101 or an external environmental state (e.g., a user state) and generates an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0026] Interface 177 may support one or more specified protocols that electronic device 101 may use to directly or wirelessly connect with external electronic devices (e.g., electronic device 102). According to one embodiment, interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0027] The connection terminal 178 includes a connector through which the electronic device 101 is physically connected to an external electronic device (e.g., the electronic device 102). According to one embodiment, the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0028] Haptic module 179 converts electrical signals into mechanical (e.g., vibration or movement) or electrical stimuli that can be perceived by a user via touch or kinesthetic sensation. According to one embodiment, haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulator.

[0029] Camera module 180 captures still and video images and, according to one embodiment, may include one or more lenses, an image sensor, an image signal processor, or a flash.

[0030] The power management module 188 manages the power provided to the electronic device 101. According to one embodiment, the power management module 188 may be implemented, for example, as at least part of a power management integrated circuit (PMIC).

[0031] Battery 189 provides power to at least one component of electronic device 101. According to one embodiment, battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0032] The communication module 190 supports establishing a direct (e.g., wired) or wireless communication channel between the electronic device 101 and an external electronic device (e.g., the electronic device 102, the electronic device 104, or the server 108) and performing communication through the established communication channel. The communication module 190 may include one or more communication processors that operate independently of the processor 120 (e.g., an application processor) and support the direct (e.g., wired) or wireless communication. According to an embodiment, the communication module 190 may include a wireless communication module 192 (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (e.g., a local area network (LAN) communication module, or a power line communication module). The communication modules may communicate with the external electronic device 104 via a first network 198 (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network 199 (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into one component (e.g., a single chip) or realized in multiple components (e.g., multiple chips) that are separate from each other. The wireless communication module 192 may identify or authenticate the electronic device 101 in a communication network such as the first network 198 or the second network 199 using subscriber information (e.g., an International Mobile Subscriber Identity (IMSI)) stored in the subscriber identity module 196.

[0033] The wireless communication module 192 supports a 5G network and a next-generation communication technology after the 4G network, for example, a new radio access technology (NR) access technology. The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module 192 may support a high frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module 192 can support various technologies for ensuring performance in a high frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module 192 may support various requirements defined in the electronic device 101, an external electronic device (e.g., the electronic device 104), or a network system (e.g., the second network 199). According to an embodiment, the wireless communication module 192 can support a peak data rate (e.g., 20 Gbps or more) for realizing eMBB, a loss coverage (e.g., 164 dB or less) for realizing mMTC, or a U-plane latency (e.g., 0.5 ms or less for each of downlink (DL) and uplink (UL), or 1 ms or less for round trip) for realizing URLLC.

[0034] The antenna module 197 transmits or receives signals or power to or from an external device (e.g., an external electronic device). According to one embodiment, the antenna module 197 includes an antenna including a radiator made of a conductor or conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module 197 includes a plurality of antennas (e.g., an array antenna). In such a case, at least one antenna suitable for a communication method used in a communication network such as a first network 198 or a second network 199 may be selected from the plurality of antennas, for example, by the communication module 190. Signals or power may be transmitted or received between the communication module 190 and an external electronic device via the selected at least one antenna. According to any embodiment, components other than a radiator (e.g., a radio frequency integrated circuit (RFIC)) may also be formed as part of the antenna module 197.

[0035] According to various embodiments, the antenna module 197 can form an mmWave antenna module. According to one embodiment, the mmWave antenna module can include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated radio frequency band (e.g., an mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent a second side (e.g., a top or side) of the printed circuit board and capable of transmitting or receiving signals in the designated radio frequency band.

[0036] At least some of the components are interconnected through a peripheral communication method (e.g., a bus, a general purpose input and output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI)) and can exchange signals (e.g., commands or data) between each other.

[0037] According to an embodiment, commands or data are sent or received between the electronic device 101 and the external electronic device 104 via a server 108 connected to a second network 199. The external electronic device 102 or 104, respectively, may be the same or a different type of device as the electronic device 101. According to an embodiment, all or part of the operations performed in the electronic device 101 may be performed in one or more of the external electronic devices 102, 104, or 108. For example, if the electronic device 101 has to perform any function or service automatically or in response to a request from a user or another device, the electronic device 101 may request one or more external electronic devices to perform the function or at least part of the service instead of or in addition to performing the function or service itself. The one or more external electronic devices receiving the request perform at least part of the requested function or service, or an additional function or service related to the request, and communicate the result of the execution to the electronic device 101. The electronic device 101 may process the result as is or additionally and provide it as at least a part of a response to the request. For example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used for this purpose. The electronic device 101 may provide an ultra-low latency service using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device 104 may include an Internet of Things (IoT) device. The server 108 may be an intelligent server using machine learning and / or neural networks. According to an embodiment, the external electronic device 104 or the server 108 is included in the second network 199. The electronic device 101 may be applied to an intelligent service (e.g., a smart home, a smart city, a smart car, or healthcare) based on 5G communication technology and IoT-related technology.

[0038] 2 is a block diagram 200 illustrating an example of the program 140 according to one implementation. In one implementation, the program 140 includes an operating system 142 for controlling one or more resources of the electronic device 101, middleware 144, or applications 146 executable on the operating system 142. The operating system 142 may be, for example, an Android TM , iOS TM , Windows TM , Symbian TM , Tizen TM , or Bada TM At least some of the programs 140 may be preloaded onto the electronic device 101 at the time of manufacture, or may be downloaded or updated from an external electronic device (e.g., electronic device 102 or 104, or server 108) when used by a user, for example.

[0039] Operating system 142 may control the management (e.g., allocation or time) of one or more system resources (e.g., processes, memory, or power) of electronic device 101. Operating system 142 may additionally or alternatively include one or more driver programs for driving other hardware devices of electronic device 101, such as input module 150, acoustic output module 155, display module 160, audio module 170, sensor module 176, interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identity module 196, or antenna module 197.

[0040] The middleware 144 may provide various functions to the applications 146 such that functionality or information provided from one or more resources of the electronic device 101 may be used by the applications 146. The middleware 144 may include, for example, an application manager 201, a window manager 203, a multimedia manager 205, a resource manager 207, a power manager 209, a database manager 211, a package manager 213, a connectivity manager 215, a notification manager 217, a location manager 219, a graphics manager 221, a security manager 223, a call manager 225, or a voice recognition manager 227.

[0041] The application manager 201 may, for example, manage the life cycle of the application 146. The window manager 203 may, for example, manage one or more GUI resources used on the screen. The multimedia manager 205 may, for example, determine one or more formats required for playing media files and perform encoding or decoding of the media files using a codec suitable for the selected format. The resource manager 207 may, for example, manage source code of the application 146 or memory space of the memory 130. The power manager 209 may, for example, manage the capacity, temperature, or power of the battery 189, and may use the information to determine or provide relevant information required for the operation of the electronic device 101. In one implementation, the power manager 209 may interface with the BIOS (basic input / output system) of the electronic device 101.

[0042] The database manager 211 may, for example, create, search, or modify databases used by the applications 146. The package manager 213 may, for example, manage the installation or updates of applications distributed in the form of package files. The connectivity manager 215 may, for example, manage wireless or direct connections between the electronic device 101 and external electronic devices. The notification manager 217 may, for example, provide functionality for notifying a user of the occurrence of a specified event (e.g., an incoming call, a message, or an alarm). The location manager 219 may, for example, manage location information for the electronic device 101. The graphics manager 221 may, for example, manage one or more graphic effects or user interfaces related thereto that are provided to a user.

[0043] The security manager 223 may provide, for example, system security or user authentication. The telephony manager 225 may manage, for example, voice or video calling functions provided by the electronic device 101. The voice recognition manager 227 may, for example, send user voice data to the server 108 and receive from the server 108 a command corresponding to a function to be performed by the electronic device 101 based at least in part on the voice data, or text data converted at least in part on the voice data. According to an embodiment, the middleware 144 may dynamically remove existing components or add new components. According to an embodiment, at least a portion of the middleware 144 may be included as part of the operating system 142 or may be implemented as software separate from the operating system 142.

[0044] The applications 146 may include, for example, a home 251, a dialer 253, an SMS / MMS 255, an instant message (IM) 257, a browser 259, a camera 261, an alarm 263, a contact 265, a voice recognition 267, an email 269, a calendar 271, a media player 273, an album 275, a watch 277, a health 279 (e.g., measuring vital signs such as activity or blood glucose), or an environmental information 281 (e.g., measuring air pressure, humidity, or temperature information) application. In one implementation, the applications 146 may further include an information exchange application that may assist in information exchange between the electronic device 101 and an external electronic device. The information exchange application may include, for example, a notification relay application configured to communicate designated information (e.g., calls, messages, or alarms) with the external electronic device, or a device management application configured to manage the external electronic device. The notification relay application may, for example, communicate to an external electronic device notification information corresponding to a specified event (e.g., received mail) that occurs in another application (e.g., email application 269) of electronic device 101. Additionally or alternatively, the notification relay application may receive notification information from the external electronic device and provide it to a user of electronic device 101.

[0045] The device management application may, for example, control the power (e.g., turn-on or turn-off) or functionality (e.g., brightness, resolution, or focus) of an external electronic device or some of its components (e.g., a display module or a camera module of the external electronic device) that communicates with electronic device 101. The device management application may additionally or alternatively support the installation, removal, or updating of applications that run on the external electronic device.

[0046] Electronic devices according to various embodiments disclosed herein may take various forms. The electronic devices may include, for example, portable communication devices (e.g., smartphones), computing devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or consumer electronic devices. The electronic devices according to embodiments disclosed herein are not limited to the aforementioned devices.

[0047] The various embodiments of this document and the terms used herein are not intended to limit the technical features described in this document to a specific embodiment, but should be understood to include various modifications, equivalents, or alternatives of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item includes one or more of the said items, unless the relevant context clearly dictates otherwise. In this document, each of phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B or C," "at least one of A, B, or C" can include any one of the items listed with the corresponding phrase in the phrase, or all possible combinations thereof. Terms such as "first," "second," "first," or "second" are used merely to distinguish the said component from other said components, and do not limit the said component to other aspects (e.g., importance or order). When any (e.g., first) component is referred to as being "coupled" or "connected" to another (e.g., second) component, with or without the terms "functionally" or "communicatively," it means that the component may be coupled to the other component directly (e.g., by wire), wirelessly, or through a third component.

[0048] The term "module" as used in various embodiments of this document includes a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integrated component or the smallest unit or portion of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0049] Various embodiments of this document may be implemented as software (e.g., program 140) including one or more instructions stored in a storage medium (e.g., internal memory 136 or external memory 138) readable by a machine (e.g., electronic device 101 of FIG. 1). For example, a processor (e.g., processor 120) of the machine (e.g., electronic device 101) may retrieve and execute at least one instruction of the one or more stored instructions from the storage medium. This allows the machine to be operated to perform at least one function in response to the retrieved at least one instruction. The one or more instructions may include code generated by a compiler or code executed by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, "non-transient" simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and this term does not distinguish between data being stored semi-permanently on the storage medium and data being stored temporarily.

[0050] According to an embodiment, the method according to the various embodiments disclosed herein may be provided in a computer program product. The computer program product is traded between a seller and a buyer as a commodity. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)) or distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a part of the computer program product may be at least temporarily stored or temporarily generated in a machine-readable storage medium such as a memory of a manufacturer's server, an application store server, or an intermediary server.

[0051] According to various embodiments, each of the components described above (e.g., modules or programs) may include one or more entities, and some of the entities may be located separately in other components. According to various embodiments, one or more of the components described above may be omitted, or one or more other components or operations may be added. Alternatively or additionally, multiple components (e.g., modules or programs) may be integrated into one component. In such a case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the multiple components before the integration. According to various embodiments, operations performed by modules, programs, or other components may be performed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be performed in a different order, omitted, or one or more other operations may be added.

[0052] FIG. 3 is a block diagram illustrating an example of an electronic device according to an embodiment.

[0053] In one implementation, electronic device 300 of FIG. 3 (e.g., electronic device 101 of FIG. 1) includes memory 310 (e.g., memory 130 of FIG. 1), a processor 320 (e.g., processor 120 of FIG. 1), and a display 330 (e.g., display module 160 of FIG. 1).

[0054] In one implementation, memory 310 can store one or more applications. By way of example, memory 310 can store one or more third party applications and one or more system applications. System applications refer to applications that are installed on electronic device 300 by the manufacturer of electronic device 300. System applications may include, for example, but are not limited to, device care applications for managing or caring for electronic device 300.

[0055] In one embodiment, the processor 320 may obtain error information when an error occurs in a first application that is being executed. In one embodiment, an error may cause a crash of the first application, causing a force close (FC) of the first application that is being executed (or used). When a crash of the first application occurs and the first application is force closed, the processor 320 may obtain error information through a framework of an operating system (e.g., the operating system 142 of FIG. 2). The error information may include, for example, a process of the first application, an identification (ID) of the process of the first application, information on the first application, and crash information. The information on the first application may include, for example, an ID of the first application (e.g., a package name of the first application) and version information of the first application, but is not limited thereto. The crash information may include, for example, a type of an error (e.g., an exception) that has occurred and a cause of the error, but is not limited thereto. The exception may indicate, for example, an error that may occur due to an incorrect operation by a user, or an error that occurs in logic implemented by a developer. Table 1 below shows an example of crash information.

[0056] [Table 1]

[0057] In one embodiment, the processor 320 can determine the type (e.g., exception type) and cause of the error that occurred in the first application from the acquired error information. In one embodiment, the processor 320 can determine whether any type of exception occurred in the crash information and determine the cause of the error. As an example, the processor 320 can extract or parse "InvocationTargetException" written after "java.lang" in the line "11-22 23:36:40.280 10360 14073 14073 E AndroidRuntime:Caused by:java.lang.reflect.InvocationTargetException" including "java.lang" in the crash information in Table 1 above. The processor 320 can determine that "InvocationTargetException" has occurred from the crash information in Table 1 above. The processor 320 can extract or parse the "Package not found:com.google.android.webview" line "11-22 23:36:40.280 10360 14073 14073 E AndroidRuntime:Caused by:java.lang.RuntimeException:Package not found:com.google.android.webview" which includes "Caused by" in the crash information in Table 1 above, which is written after "Caused by".

[0058] In one implementation, the processor 320 can obtain the process of the first application and the ID of the process of the first application from the information or crash information of the first application. As an example, the processor 320 can extract or parse "Process:com.???.katana" and "PID:14073" from the line "11-22 23:36:40.280 10360 14073 14073 E AndroidRuntime:Process:com.???.katana, PID:14073" containing "Process" in the crash information in Table 1 above. The extracted "Process:com.???.katana" indicates the process of the first application, and the extracted "PID:14073" indicates the ID of the process of the first application.

[0059] In one implementation, the processor 320 may analyze the error information to determine that the error in the first application occurred because the first application was unable to find a webview.

[0060] In one implementation, the processor 320 can use the identified error type and cause to obtain a solution for solving the error occurring in the first application from a reference data set. The reference data set includes, for example, one or more error types (e.g., one or more exception types), one or more error causes, and one or more solutions. The one or more solutions include, but are not limited to, one or more of permission permissions (e.g., file read / write permission permissions, Internet access permission permissions), cache cleanup, memory storage space allocation, restart, and Internet connection. The one or more error causes (or one or more error types) are mapped to one or more solutions. In one implementation, the processor 320 checks or determines whether the exception type (e.g., InvocationTargetException) extracted (or parsed) from the crash information (e.g., the crash information in Table 1 above) is in the reference data set. When the extracted exception type is in the reference dataset, the processor 320 checks or determines whether the reference dataset contains an error cause corresponding to the extracted cause (e.g., "Package not found:com.google.android.webview"). When the reference dataset contains an error cause corresponding to the extracted cause, the processor 320 can obtain a solution mapped to the extracted cause from the reference dataset.

[0061] In one implementation, the reference data set can be stored in memory 310 or a server. In one implementation, the reference data set may be stored in a database (DB) of a system application (e.g., a device care application) of electronic device 300. In another embodiment, the reference data set may be stored in a DB of a server.

[0062] In one implementation, the crash information may not record the cause of the error. For example, any crash information may not have a line containing "Caused by." The processor 320 may identify an error type (e.g., exception type) from the crash information and use the identified error type to obtain one or more solutions from a reference data set.

[0063] In one implementation, the processor 320 can verify the suitability of the acquired solution. In one implementation, the processor 320 verifies the suitability of the acquired solution based on state information of the electronic device 300 (e.g., memory state and communication connection state of the electronic device 300). As an example, the processor 320 may acquire a solution indicating securing storage space in the memory 310 from the reference data set. If the memory 310 has a sufficient storage capacity, the processor 320 determines that the solution indicating securing storage space in the memory 310 is not suitable. If the memory 310 has a limited storage capacity, the processor 320 determines that the solution indicating securing storage space in the memory 310 is suitable.

[0064] In one implementation, if the retrieved solution is verified as suitable, the processor 320 can provide guidance for the retrieved solution to the user via the display 330. In one implementation, the processor 320 displays a pop-up window on the display 330 for guidance for the retrieved solution.

[0065] In one implementation, the processor 320 may obtain a plurality of solutions for solving the error of the first application from the reference dataset. The obtained solutions have a given order, and the processor 320 may select a top-ranking solution (a solution having a highest position in the given order) from among the obtained solutions. The processor 320 may verify the suitability of the top-ranking solution, and if the top-ranking solution is verified to be suitable, may provide guidance for the top-ranking solution to the user via the display 330. The error of the first application may not be solved even if the top-ranking solution is executed. The processor 320 may verify the suitability of a next-highest-ranking solution (a solution having a next-highest position in the given order), and if the next-highest-ranking solution is verified to be suitable, may provide guidance for the next-highest-ranking solution to the user via the display 330. In another embodiment, the processor 320 can change the order in which the obtained solutions are presented, which is described below with reference to FIGS.

[0066] In one implementation, if the processor 320 retrieves multiple solutions for resolving the error of the first application from the reference dataset, the processor 320 can provide a list of the retrieved solutions to the user via the display 330. In one implementation, the processor 320 summarizes each of the retrieved solutions and provides the list of the summarized solutions to the user by displaying it on the display 330. The processor 320 executes a user selection of a solution from among the solutions provided to the user (or the solutions displayed on the display 330).

[0067] In one implementation, the processor 320 may grasp, confirm, or determine the usage status of the electronic device 300. As an example, the processor 320 may grasp, confirm, or determine whether the operating system of the electronic device 300 has been updated to the latest version, whether data in the user's other electronic device has been backed up (or synchronized) to the electronic device 300, or whether the electronic device 300 is a new product. The processor 320 may use a first recommendation algorithm (e.g., collaborative filtering) to provide the user with an error solution appropriate for the grasped usage status when an error occurs in the first application. As an example, the processor 320 may apply the first recommendation algorithm to the grasped usage status when an error occurs in the first application to provide the user with one or more solutions for solving the error in the first application.

[0068] In one implementation, the processor 320 may record in the memory 310 (or a server) whether any error occurred for each of the plurality of applications and whether any solution was provided to solve the error occurred in each of the plurality of applications. In another embodiment, a solution provision history may be recorded in the memory 310 (or a server). The processor 320 may use the solution provision history and a second recommendation algorithm (e.g., content-based filtering) to provide an appropriate error solution to the user when an error occurs in the first application. As an example, the processor 320 may apply the second recommendation algorithm to the solution provision history to provide the user with one or more solutions for solving the error in the first application.

[0069] In one implementation, the error of the first application may not be resolved even if the acquired solution (or the acquired solutions) is executed. Alternatively, the processor 320 may query whether the identified error type is in the reference data set, but may receive a response indicating that the identified error type is not present. If the error of the first application is not resolved, or if the processor 320 receives a response indicating that the identified error type is not present, the processor 320 determines whether an updated version of the first application is available in the application market. If an updated version of the first application is available in the application market, the processor 320 provides a user with a guide to an update of the first application or a guide to an updated version of the first application via the display 330. The processor 320 displays a pop-up window for the guide to an update of the first application or a guide to an updated version of the first application on the display 330. If an updated version of the first application is not available in the application market, the processor 320 provides information about the error of the first application to the user via the display 330, and if there is a user input for the provided information, displays a screen including an error occurrence history of the first application and a button for deleting the first application on the display 330.

[0070] FIG. 4 is a diagram illustrating an example of an operating system framework and system applications of an electronic device according to one implementation.

[0071] In one implementation, an operating system framework 410 and system applications 420 (eg, applications 146 in FIG. 2) may run on a processor 400 (eg, processor 320 in FIG. 3).

[0072] In one implementation, the framework 410 includes an ActivityManagerService (AMS) 411 (eg, Application Manager 201 of FIG. 2), an AppErrors 412, a Diagnostics section 413, and a DB Manager 414 (eg, Database Manager 211 of FIG. 2).

[0073] In one implementation, the system application 420 includes an IAFD (intelligent application fault diagnosis) service component 421 that runs in the background, a popup provider 422 for providing a popup window, a DB provider 423 for providing a connection between an external element of the system application 420 (e.g., framework 410) and the first DB 424, and the first DB 424.

[0074] In one implementation, the reference data set described with reference to Figure 3 is stored in the first DB 424. The first DB 424 may also store version information of one or more applications.

[0075] In one implementation, the processor 400 queries the first DB 424 in the system application 420 via the framework 410 whether there is a solution for resolving the error of the first application. The processor 400 can obtain one or more solutions for resolving the error of the first application from the first DB 424.

[0076] In one implementation, the processor 400 may obtain or collect error information via the AMS 411 of the framework 410 when a crash of the first application occurs and the first application is terminated.

[0077] In one implementation, the processor 400 can operate the diagnostic unit 413 via the AppErrors 412. As an example, the diagnostic unit 413 corresponds to an instance, and the processor 400 creates an instance corresponding to the diagnostic unit 413 via the AppErrors 412.

[0078] In one implementation, the processor 400 can determine the type of exception that occurred and the cause of the error from the crash information in the error information (for example, the crash information in Table 1 above) via the diagnosis unit 413.

[0079] In one implementation, the processor 400 can perform some operations of the system application 420 in the background via the IAFD service component 421. The some operations performed in the background include, for example, an operation of accessing the first DB 424 and an operation of obtaining a solution from the first DB 424, which will be described later, but are not limited thereto.

[0080] In one implementation, the processor 400 accesses the first DB 424 via the DB manager 414 in the framework 410 and the DB provider 423 in the system application 420, and queries whether the first DB 424 contains a solution for the recognized exception type and cause of the error. If the first DB 424 contains a solution for the recognized exception type and cause of the error, the processor 400 can obtain the solution from the first DB 424 via the DB provider 423 and the DB manager 414.

[0081] In one implementation, the processor 400 verifies the suitability of the acquired solution via the diagnosis unit 413, and if the acquired solution is verified to be suitable, it can display a pop-up window for providing information about the acquired solution on the display 330 via the pop-up providing unit 422 of the system application 420.

[0082] In one implementation, the first DB 424 records the number of times the acquired solution has been provided. When the processor 400 provides the acquired solution to the user, the processor 400 updates the number of times the solution has been provided recorded in the first DB 424. As an example, the first DB 424 may record the number of times that solution A has been provided, 10 times. When the processor 400 provides solution A to the user, the processor 400 may update the number of times that solution A has been provided, from 10 times to 11 times.

[0083] In one implementation, when the processor 400 provides the retrieved solution to the user, the processor 400 may record in the first DB 424 that the retrieved solution has been provided in the current version of the first application. As an example, the version of the first application in which the error occurred may be 1.10, and the processor 400 may provide the user with solution A. The processor 400 may record in the first DB 424 that the processor 400 has provided solution A in version 1.10 of the first application.

[0084] In one implementation, the processor 400 can retrieve solutions from the first DB 424 and provide a list of the retrieved solutions to the user via the display 330. In one implementation, the processor 400 may summarize each retrieved solution and provide the user with a list of the summarized solutions by displaying them on the display 330. The processor 400 executes a user selection of a solution from among the solutions provided to the user (or solutions displayed on the display 330).

[0085] In one implementation, the processor 400 may obtain a response indicating that there is no query result from the first DB 424. As an example, if the recognized exception type is not in the first DB 424, the processor 400 obtains a response indicating that there is no query result from the first DB 424. The processor 400 checks or determines whether an updated version of the first application is available in the application market. If an updated version of the first application is available in the application market, the processor 400 displays a pop-up window on the display 330 to guide the user to an update of the first application or to guide the user to an updated version of the first application. If an updated version of the first application is not available in the application market, the processor 400 displays information on an error of the first application on the display 330 to provide the user with the information. If there is a user input for the provided information, the processor 400 may display a screen including an error occurrence history of the first application and a button for deleting the first application on the display 330.

[0086] In one implementation, the processor 400 may analyze state information of the electronic device 300 during a time interval between the first time instance and a second time point (time instance) at which an error of the first application occurs. The first time instance indicates a time instance earlier than the second time instance at which an error of the first application occurs. The state information of the electronic device 300 may include, but is not limited to, one or more of a load state of the electronic device 300, a heat state of the electronic device 300, and an electric field state between the electronic device 300 and a base station (not shown). There is a possibility that the error of the first application occurs due to an external factor (or a state of the electronic device 300), and the processor 400 may analyze state information of the electronic device 300 during a time interval between the first time instance and a second time point at which an error of the first application occurs via the diagnosis unit 413. As an example, the processor 400 may be in a high load state because multiple applications are running in the electronic device 300, and a temporary error may occur in the first application depending on the high load state of the processor 400. As another example, the performance of the processor 400 may be temporarily degraded due to heat (or high temperature) of the electronic device 300, and the temporary degraded performance of the processor 400 may cause an error in the first application. As a further example, the electric field state between the electronic device 300 and the base station may be a weak electromagnetic field state. When the electronic device 300 enters, for example, a bridge section or a tunnel section, the electric field state between the electronic device 300 and the base station becomes a weak electric field state. Depending on the weak electric field state, a communication error of the electronic device 300 and / or an input / output error of the processor 400 may occur, causing an error in the first application.

[0087] In one implementation, the processor 400 may check or determine the state of the electronic device 300, such as one or more of a load state, a heat state, and a field state of the electronic device 300, by analyzing the state information of the electronic device 300 during a time interval between the first time instance and the second time instance at which the error of the first application occurs. The processor 400 may analyze or determine that the electronic device 300 is in an abnormal state if the electronic device 300 is in a high load state, if the temperature of the electronic device 300 is high, and / or if the electronic device 300 is in a weak field state.

[0088] In one implementation, the processor 400 may grasp or determine an exception type and a cause of an error from the crash information via the diagnosis unit 413, and may obtain one or more solutions for solving an error occurring in the first application or one or more solutions corresponding to an error occurring in the first application using the grasped exception type, the grasped cause of the error, and an analysis result of the state information of the electronic device 300. As an example, the processor 400 may obtain one or more solutions for the grasped exception type and the grasped cause of the error from the first DB 424. The processor 400 may generate a method for eliminating (or mitigating) an abnormal state of the electronic device 300 (e.g., when various applications are running, suspending the execution of some applications, or suspending use of the electronic device 300 for a while to lower the temperature). In any embodiment, the first DB 424 records one or more methods for eliminating (or mitigating) an abnormal state of the electronic device 300. When the electronic device 300 is in an abnormal state, the processor 400 may obtain one or more methods for eliminating (or mitigating) the abnormal state from the first DB 424.

[0089] In one implementation, the first DB 424 may be updated through an update of the system application 420 .

[0090] FIG. 5 is a diagram for explaining another example in which an electronic device according to an embodiment obtains a solution from a DB.

[0091] In one implementation, the processor 510 (e.g., the processor 320 of FIG. 3) in the electronic device 500 of FIG. 5 (e.g., the electronic device 300 of FIG. 3) may obtain error information via the framework 511 (e.g., the framework 410 of FIG. 4) when a crash of the first application occurs and the first application is forcibly terminated. The processor 510 grasps an exception type and a cause of the error from the error information obtained via the framework 511. In the example of FIG. 5, the processor 510 may not use a system application (e.g., the system application 420 of FIG. 4) to obtain a solution for the grasped exception type and cause of the error.

[0092] In one implementation, the memory 520 (e.g., the memory 310 in FIG. 3) stores the reference data set described with reference to FIG. 3. The reference data set may be recorded in the first DB 521 shown in FIG.

[0093] In one implementation, the processor 510 queries the first DB 521 for solutions to the identified exception type and cause of the error. If the first DB 521 has solutions to the identified exception type and cause of the error, the processor 510 can obtain one or more solutions from the first DB 521.

[0094] In one implementation, the processor 510 can verify the suitability of the acquired solution. If the acquired solution is verified as being suitable, the processor 510 displays a pop-up window for guidance on the acquired solution on the display 330 via the framework 511.

[0095] In one implementation, the first DB 521 may record the number of times the acquired solution has been provided. When the processor 510 provides the acquired solution to the user, the processor 510 updates the number of times the solution has been provided recorded in the first DB 521. As an example, the first DB 521 may record that the solution A has been provided eight times. When the processor 510 provides the solution A to the user, the processor 510 may update the number of times the solution A has been provided from eight times to nine times.

[0096] In one implementation, when the processor 510 provides the retrieved solution to the user, the processor 510 may record in the first DB 521 that the retrieved solution has been provided in the current version of the first application. As an example, the version of the first application in which the error occurred may be 2.10, and the processor 510 may provide the user with solution A. The processor 510 may record in the first DB 521 that the processor 510 has provided solution A in version 2.10 of the first application.

[0097] In one implementation, the processor 510 can retrieve solutions from the first DB 521 and provide a list of the retrieved solutions to the user via the display 330. In one implementation, the processor 510 may summarize each of the retrieved solutions and provide the list of the summarized solutions to the user by displaying it on the display 330. The processor 510 performs a user selection of a solution from among the solutions provided to the user (or the solutions displayed on the display 330).

[0098] In one implementation, the processor 510 may receive a response from the first DB 521 indicating that there is no query result. When the processor 510 receives the response indicating that there is no query result, the processor 510 checks or determines whether an updated version of the first application is available in the application market. When an updated version of the first application is available in the application market, the processor 510 displays a pop-up window on the display 330 to guide the user to update the first application. When an updated version of the first application is not available in the application market, the processor 510 displays information about an error in the first application on the display 330 to provide it to the user. When there is a user input for the provided information, the processor 510 displays a screen including a history of errors in the first application and a soft button for deleting the first application on the display 330.

[0099] In one implementation, the processor 510 may analyze status information of the electronic device 500 (e.g., one or more of a load state of the electronic device 500, a heat generation state of the electronic device 500, and an electric field state between the electronic device 500 and the base station) during the time between the error occurrence time of the first application and the first time point. An embodiment for analyzing the status information of the electronic device 500 is the same as the embodiment for analyzing the status information of the electronic device 300 described with reference to FIG. 4, and therefore a detailed description thereof will be omitted.

[0100] In one implementation, the processor 510 may determine an exception type and a cause of the error from the crash information, and obtain one or more solutions for solving the error occurring in the first application by using the determined exception type, the determined cause of the error, and an analysis result of the status information of the electronic device 500. The embodiment of obtaining a solution by using the analysis result of the status information of the electronic device 500 is the same as the embodiment of obtaining a solution by using the analysis result of the status information of the electronic device 300 described with reference to FIG. 4, and therefore a detailed description thereof will be omitted.

[0101] In one implementation, the first DB 521 is updated via a firmware update (or an operating system update).

[0102] FIG. 6 is a diagram illustrating a further example of an electronic device obtaining a solution from a DB according to an embodiment.

[0103] In one implementation, the reference data set described with reference to Figure 3 is stored in the server 620. The reference data set may be recorded in the first DB 621 of the server 620 shown in Figure 6.

[0104] In one implementation, when a first application crashes and is forcibly terminated, a processor 611 (e.g., processor 320 in FIG. 3) in an electronic device 610 (e.g., electronic device 300 in FIG. 3) can obtain error information via a framework 611-1 (e.g., framework 410 in FIG. 4) when the first application crashes and is forcibly terminated. The processor 611 can determine the exception type and the cause of the error from the error information obtained via the framework 611-1.

[0105] In one implementation, the processor 611 transmits information of the first application (e.g., package name and version information of the first application), the identified exception type, and the identified cause of the error to the server 620 via a communication module (e.g., communication module 190 of FIG. 1 ) of the electronic device 610. The server 620 checks or determines whether a solution for the exception type and the cause of the error occurred in the first application is in the first DB 621 in the server 620. If the first DB 621 in the server 620 contains one or more solutions for the exception type and the cause of the error occurred in the first application, the server 620 can transmit the one or more solutions to the electronic device 610.

[0106] In one implementation, the processor 611 verifies the suitability of the received solution, and if the received solution is verified as suitable, displays a pop-up window on the display 330 for guidance on the received solution.

[0107] In one implementation, the first DB 621 may record the number of times the acquired solution has been provided. When the processor 611 provides the acquired solution to the user, the processor 611 may update the number of times the solution has been provided, recorded in the first DB 621. As an example, the first DB 621 may record the number of times that the solution A has been provided, 5 times. When the processor 611 provides the solution A to the user, the processor 611 may access the first DB 621 via the server 620 and update the number of times that the solution A has been provided, from 5 times to 6 times.

[0108] In one implementation, when the processor 611 provides the retrieved solution to the user, the processor 611 may record in the first DB 621 that the retrieved solution has been provided in the current version of the first application. As an example, the version of the first application in which an error has occurred may be 2.10, and the processor 611 may provide the user with solution A. The processor 611 may access the first DB 621 via the server 620, and record in the first DB 621 that the processor 611 has provided solution A in version 2.10 of the first application.

[0109] In one implementation, the processor 611 can receive solutions from the server 620 and provide a list of the received solutions to the user via the display 330. In one implementation, the processor 611 summarizes each received solution and provides the user with a list of the summarized solutions by displaying them on the display 330. The processor 611 performs a user selection of a solution from among the solutions provided to the user (or solutions displayed on the display 330).

[0110] In one implementation, the processor 611 receives a response from the server 620 indicating that there is no query result. When the processor 611 receives the response indicating that there is no query result, the processor 611 checks or determines whether an updated version of the first application is available in the application market. When an updated version of the first application is available in the application market, the processor 611 displays a pop-up window on the display 330 to guide the user to update the first application. When an updated version of the first application is not available in the application market, the processor 611 displays information about an error in the first application on the display 330 to provide the user with the information. When there is a user input for the provided information, the processor 611 may display a screen including a history of errors in the first application and a soft button for deleting the first application on the display 330.

[0111] In one implementation, the processor 611 analyzes status information of the electronic device 610 (e.g., one or more of a load state of the electronic device 610, a heat generation state of the electronic device 610, and an electric field state between the electronic device 610 and a base station) during the time between the error occurrence time of the first application and the first time point. An embodiment for analyzing the status information of the electronic device 610 is the same as the embodiment for analyzing the status information of the electronic device 300 described with reference to FIG. 4, and therefore a detailed description thereof will be omitted.

[0112] In one implementation, the processor 611 may determine an exception type and a cause of the error from the crash information, and obtain one or more solutions for solving the error occurring in the first application using the determined exception type, the determined cause of the error, and an analysis result of the status information of the electronic device 610. The embodiment of obtaining a solution using the analysis result of the status information of the electronic device 610 is the same as the embodiment of obtaining a solution using the analysis result of the status information of the electronic device 300 described with reference to FIG. 4, and therefore a detailed description thereof will be omitted.

[0113] FIG. 7 is a flowchart illustrating an example of a method for providing a solution when an application crash occurs in an electronic device according to an embodiment.

[0114] In operation 701, an electronic device (e.g., the electronic device 300 in FIG. 3) acquires error information when a crash occurs in a first application. The acquired error information includes, for example, a process of the first application, an ID of the process of the first application, information of the first application, and crash information.

[0115] At operation 703, the electronic device 300 identifies or determines whether the first application is a third-party application. In one implementation, the electronic device 300 can identify or determine whether the first application is a third-party application using the error information (e.g., information about the first application).

[0116] If the first application is not a third party application (operation 703-no), the electronic device 300 prompts the user to suspend execution of the first application in operation 705. In either embodiment, operation 703 may be omitted.

[0117] If the first application is a third-party application (operation 703-Yes), the electronic device 300 parses the target items (e.g., at least one of the exception type, the cause of the error, and the information of the first application) from the crash information in the error information at operation 707.

[0118] In operation 709, the electronic device 300 queries the first DB (e.g., the first DB 424 in FIG. 4, the first DB 521 in FIG. 5, or the first DB 621 in FIG. 6) based on the parsing result (e.g., at least one of the exception type, the cause of the error, and the information of the first application). In one implementation, the electronic device 300 can query whether there is a solution corresponding to the parsed target item in the first DB.

[0119] In operation 711, the electronic device 300 checks or determines whether there is any information returned (or obtained) from the first DB (e.g., a solution for resolving the error of the first application). As an example, the electronic device 300 receives information indicating no query result from the first DB if the parsed exception type is not present in the first DB. In this case, the electronic device 300 can check that there is no information returned from the first DB.

[0120] If there is no information returned from the first DB (operation 711--no), the electronic device 300 checks or determines in operation 721 whether there is an updated version of the first application in the application market.

[0121] If an update version of the first application is available in the application market (operation 721--Yes), the electronic device 300 provides the user with an update guide for the first application in operation 723.

[0122] If there is no updated version of the first application in the application market (operation 721-No), the electronic device 300 provides the user with information about the error in the first application in operation 725. The electronic device 300 may display a screen on a display (e.g., display 330 of FIG. 3) that includes a history of errors in the first application and a button for deleting the first application.

[0123] The electronic device 300 may obtain multiple solutions for solving an error that has occurred in the first application (or the current version of the first application) from the first DB. When the electronic device 300 obtains multiple solutions from the first DB and confirms that there is information returned from the first DB (operation 711-Yes), in operation 713, the electronic device 300 selects a solution to be provided from among the obtained solutions. As an example, the electronic device 300 may obtain solution #1 and solution #2 for solving the error of the first application from the first DB. Of solution #1 and solution #2, it may be determined that solution #1 is provided before solution #2. Of solution #1 and solution #2, the priority of solution #1 may be higher than the priority of solution #2. Of solution #1 and solution #2, the electronic device 300 may select solution #1, which is the highest priority, from solution #1 and solution #2. In one embodiment, the order of solutions may be changed, which will be described later with reference to FIG. 11-FIG. 12.

[0124] In operation 715, the electronic device 300 determines whether the selected solution has been executed. As an example, the first DB may not record a history of the electronic device 300 providing the user with solution #1 to solve the error of the first application. When the electronic device 300 refers to the first DB, it determines that the selected solution #1 is not executed (operation 715-NO).

[0125] If the selected solution #1 is not executed (operation 715-no), the electronic device 300 determines whether the selected solution #1 is suitable in operation 717. The electronic device 300 determines whether the selected solution #1 is suitable in consideration of the state information (e.g., memory state, communication connection state) of the electronic device 300. If the selected solution #1 is not suitable (operation 717-no), the electronic device 300 selects solution #2 in operation 713 and determines whether the selected solution #2 is suitable.

[0126] If the selected solution #1 is suitable (operation 717-Yes), the electronic device 300 provides the selected solution #1 to the user in operation 719. When the electronic device 300 provides the selected solution #1 to the user, the electronic device 300 may update the number of times the selected solution #1 has been provided in the first DB and record in the first DB that the selected solution #1 has been provided in the current version of the first application.

[0127] Even if the selected solution method #1 is executed, a crash of the first application may occur again. If a crash of the first application occurs again, the electronic device 300 performs operation 701, operation 703, operation 707, operation 709, and operation 713 again. If a crash of the first application occurs again, the electronic device 300 acquires solution method #1 and solution method #2 from the first DB again in operation 709. In operation 713, the electronic device 300 selects solution method #1, which is the highest ranked solution method, from solution method #1 and solution method #2.

[0128] In operation 715, the electronic device 300 determines whether the selected solution #1 has been executed. Since the first DB records a history of the electronic device 300 providing the user with solution #1 to solve the error of the first application, the electronic device 300 can determine that the selected solution #1 has been executed. If the selected solution #1 has been executed (operation 715-Yes), the electronic device 300 determines in operation 727 whether the selected solution #1 is the last. Since solution #2 remains, the electronic device 300 determines that the selected solution #1 is not the last (operation 727-No), and selects the next solution #2 in the order of priority in operation 713.

[0129] In operation 715, the electronic device 300 determines whether the selected solution method #2 has been executed. Since the first DB does not have a record of the electronic device 300 providing the user with the solution method #2 to solve the error of the first application, the electronic device 300 determines that the selected solution method #2 will not be executed (operation 715-NO).

[0130] If the selected solution #2 is not being executed (operation 715-No), the electronic device 300 determines whether the selected solution #2 is suitable. The electronic device 300 determines whether the selected solution #2 is suitable by taking into account the state information of the electronic device 300 (e.g., memory state, communication connection state).

[0131] If the selected solution #2 is suitable (operation 717--yes), the electronic device 300 provides the selected solution #2 to the user in operation 719. When the electronic device 300 provides the selected solution #2 to the user, the electronic device 300 updates the number of times the selected solution #2 has been provided in the first DB and records in the first DB that the selected solution #2 has been provided in the current version of the first application.

[0132] Even if the selected solution method #2 is executed, the first application may crash again. If the first application crashes again, the electronic device 300 performs operation 701, operation 703, operation 707, operation 709, and operation 713 again. If the first application crashes again, the electronic device 300 can perform operation 709 to obtain the solution method #1 and the solution method #2 from the first DB again. The electronic device 300 selects the solution method #1, which is the highest order among the solution method #1 and the solution method #2, in operation 713, and determines whether the selected solution method #1 has been executed in operation 715. Since the selected solution method #1 has been executed (operation 715-No), the electronic device 300 determines whether the selected solution method #1 is the last in operation 727. The electronic device 300 determines that the selected solution #1 is the highest priority solution and is not the last solution (operation 727-no), and selects the next priority solution #2 in operation 713. In operation 715, the electronic device 300 determines whether the selected solution #2 has been executed. Since the selected solution #2 has been executed (operation 715-yes), the electronic device 300 determines whether the selected solution #2 is the last solution in operation 727. If the selected solution #2 is the last solution (operation 727-yes), the electronic device 300 performs operation 721. If the application market has an updated version of the first application (operation 721-yes), the electronic device 300 performs operation 723, and if the application market does not have an updated version of the first application (operation 721-no), the electronic device 300 performs operation 725.

[0133] The embodiment described with reference to FIGS. 1 to 6 is applied to the embodiment described with reference to FIG. 7, and therefore detailed description thereof will be omitted.

[0134] 8 to 10 are diagrams illustrating examples of pop-up windows in an electronic device according to an embodiment.

[0135] 8 to 10, "%s" indicates the name of the first application in which the error occurred.

[0136] In one implementation, in the example shown in FIG. 8, an electronic device (e.g., electronic device 300 of FIG. 3) may obtain error information when an error occurs in a first application. The electronic device 300 extracts a first exception type (e.g., FileNotFoundException) from the error information. The electronic device 300 may query a first DB (e.g., first DB 424 of FIG. 4, first DB 521 of FIG. 5, or first DB 621 of FIG. 6) for a solution for the first exception type, and obtain a solution of clearing cache from the first DB.

[0137] In one implementation, the electronic device 300 can provide a user with a solution for organizing the cache. As an example, as illustrated in FIG. 8 (box (a)), the electronic device 300 displays a pop-up window 810 on a display (e.g., the display 330 of FIG. 3) to guide the user in solving the cache organizing solution. When there is a user input (e.g., touch input) on a clear cache button 811 of the pop-up window 810, the electronic device 300 can display visual feedback on the display 330 indicating that the cache is being organized, as illustrated in FIG. 8 (box (b)). When the cache organizing is completed, the electronic device 300 can display an open app button 812 on the display 330, as illustrated in FIG. 8 (box (c)). When there is a user input on the open app button 812, the electronic device 300 can execute a first application.

[0138] In one implementation, in the example shown in FIG 9, the electronic device 300 may provide a user with an update notification for the first application in which a crash has occurred. As an example, if there is no information returned from the first DB or if the error of the first application has not been resolved, the electronic device 300 may determine whether an updated version of the first application is available in the application market. If an updated version of the first application is available in the application market, the electronic device 300 may display a pop-up window 910 for an update notification for the first application on the display 330, as shown in the example of FIG 9.

[0139] 9 includes an update button 911, a cancel button 912, and information 913 about an error that occurred in the first application. The electronic device 300 updates the first application when there is a user input to the update button 911. When there is a user input to the cancel button 912, the electronic device 300 displays a pop-up window 920 on the display 330 for re-guiding the user to update the first application.

[0140] In one implementation, if an updated version of the first application is not available in the application market, the electronic device 300 may display a pop-up window 1010 on the display 330 providing information 1011 about the error of the first application, as illustrated in FIG. 10. If there is a user input on a got it button 1012 of the pop-up window 1010, the electronic device 300 causes the pop-up window 1010 to disappear from the display 330. If there is a user input on the information 1011 about the error of the first application, the electronic device 300 displays a screen 1020 on the display 330 including an error occurrence history (e.g., crash history 1021) of the first application and a button 1022 for deleting the first application, as illustrated in FIG. 10(b). The error occurrence history (e.g., crash history 1021) may include, for example, an exception type that occurred and a time when the error occurred. In the example illustrated in FIG. 10, the screen 1020 may further include a clear cache button 1023. This is merely an example matter, and the clear cache button 1023 may be omitted from the screen 1020 .

[0141] 11 and 12 are diagrams illustrating an example of changing the order of solutions acquired by an electronic device according to an embodiment.

[0142] In one implementation, when an error occurs in a first application, an electronic device (e.g., electronic device 300 in FIG. 3) can obtain multiple solutions for solving the error from a first DB (e.g., first DB 424 in FIG. 4, first DB 521 in FIG. 5, or first DB 621 in FIG. 6). As an example, in the example of FIG. 11, electronic device 300 may obtain solution A, solution B, and solution C. The order of solution A, solution B, and solution C may be, for example, A→B→C. Among solution A, solution B, and solution C, solution A may be the top order, solution B may be the next top order, and solution C may be the last order.

[0143] In one implementation, the electronic device 300 can determine the difference in the number of times of provision between the consecutively ordered solutions among the obtained solutions. As an example, in the example of FIG. 11, the number of times of provision of the solution A may be 10, and the number of times of provision of the solution B may be 10, so the electronic device 300 can determine the difference between the number of times of provision of the solution A and the number of times of provision of the solution B as 0. The number of times of provision of the solution B may be 10, and the number of times of provision of the solution C may be 5. Thus, the electronic device 300 can determine the difference between the number of times of provision of the solution B and the number of times of provision of the solution C as 5.

[0144] In one implementation, the electronic device 300 may change the given order so that the next highest-ordered solution becomes the top-ordered solution in the changed order when the difference between the number of times the next highest-ordered solution is provided and the number of times a solution with a lower order than the next highest-ordered solution is provided is equal to or greater than a certain level. As an example, in the example of FIG. 11, the electronic device 300 may change the given order A→B→C to B→A→C so that solution B becomes the top-ordered solution when the difference between the number of times the next highest-ordered solution B is provided and the number of times a solution with a lower order than the next highest-ordered solution C is provided is equal to or greater than a certain level (e.g., 5).

[0145] In one implementation, the electronic device 300 may calculate the difference in the number of times of provision between the solutions in the consecutive order of the obtained solutions, and if the calculated differences are the same, may change the given order so that the solution with the lowest order in the given order becomes the solution with the highest order in the changed order. As an example, in the example of FIG. 12, the electronic device 300 may calculate the difference 2 in the number of times of provision between the solutions A and B in the consecutive order, and may calculate the difference 2 in the number of times of provision between the solutions B and C in the consecutive order. The electronic device 300 may change the given order A→B→C to C→A→B so that the calculated differences are the same and the solution C with the lowest order in the given order A→B→C becomes the solution with the highest order.

[0146] In one implementation, the electronic device 300 can apply a sorting algorithm to the number of times each of the obtained solutions is provided, and change the order in which the obtained solutions are provided. The sorting algorithm can include, but is not limited to, ascending order and / or descending order. As an example, in the example of FIG. 12, the electronic device 300 can sort the number of times each of the solutions A to C is provided in ascending order, and change the order of the solutions provided from A→B→C to C→B→A.

[0147] In one implementation, the electronic device 300 may select the solution method with the highest order in the changed order. In the example of FIG. 11, the electronic device 300 may select solution method B because solution method B is the highest order in the changed order B→A→C. In the example of FIG. 12, the electronic device 300 may select solution method C because solution method C is the highest order in the changed order C→A→B. The electronic device 300 may verify the suitability of the selected solution method, and provide the selected solution to the user if the selected solution is verified to be suitable. If the selected solution is verified to be unsuitable, the electronic device 300 may select the next highest order solution in the changed order (e.g., solution method A in the case of the changed order of FIG. 11, solution method A in the case of the changed order of FIG. 12), verify the suitability of the next highest order solution, and provide the next highest order solution to the user if the next highest order solution is suitable.

[0148] In one embodiment, when the order in which the solutions are provided is changed and any one of the solutions is executed to resolve the error of the first application, the electronic device 300 may initialize the number of times each of the solutions is provided. As an example, in the examples of FIG. 11 and FIG. 12, the electronic device 300 may initialize the number of times each of the solutions A to C is provided to 0. When the same error as that occurring in the first application occurs in another application, the electronic device 300 may obtain the solutions A to C from the first DB. The order in which the solutions A to C are provided may be A→B→C, and the electronic device 300 may first verify the suitability of the solution A, and if the solution A is suitable, provide the solution A to the user first. As another example, the electronic device 300 may check that the number of times the solution C has been provided is the smallest by referring to the history of the number of times the solutions A to C have been provided. The electronic device 300 can change the given order of solutions A to C from A→B→C to C→A→B or C→B→A, verify the suitability of solution C first, and if solution C is suitable, provide solution C to the user first.

[0149] In one embodiment, the electronic device 300 can grasp that an exception type "FileNotFoundException" has occurred from the error information and grasp that the cause of the error is a failure in calling a file. The electronic device 300 can acquire solutions A to C from the first DB through the grasped exception type and the cause of the error. Among the solutions A to C, the solution B may be cache organization, and the solution C may be memory data area organization. The order in which the solutions A to C are given may be, for example, A → B → C, and the order in which the solutions A to C are given can be changed. Since the exception type that has occurred is "FileNotFoundException", the electronic device 300 can fix the solution C to the last order. Since important data is stored in the data area of ​​the memory (for example, the memory 310 in FIG. 3), the electronic device 300 does not change the order of the solution C even if the order of the solutions A and B is changed.

[0150] FIG. 13 is a flowchart illustrating an example of a method of operating an electronic device in accordance with an embodiment.

[0151] The operational method illustrated in FIG. 13 may be performed by an electronic device (eg, electronic device 300 of FIG. 3).

[0152] In operation 1310, the electronic device 300 obtains error information if an error occurs in the running first application.

[0153] In operation 1320, the electronic device 300 determines from the obtained error information the type and cause of the error that occurred in the first application.

[0154] In operation 1330, the electronic device 300 retrieves a solution for resolving the error that occurred in the first application from the reference data set using the identified type and cause.

[0155] At operation 1340 , the electronic device 300 verifies the suitability of the obtained solution based on the state information of the electronic device 300 .

[0156] At operation 1350, the electronic device 300 provides guidance for the retrieved solution to the user via a display (eg, display 330 of FIG. 3) if the retrieved solution is verified as suitable.

[0157] The embodiment described with reference to FIGS. 1 to 12 is applied to the embodiment described with reference to FIG. 13, and therefore detailed description thereof will be omitted.

[0158] According to one implementation, an electronic device (e.g., electronic device 300 of FIG. 3) includes a memory (e.g., memory 310 of FIG. 3) that stores one or more applications, a display (e.g., display 330 of FIG. 3), and a processor (e.g., processor 320 of FIG. 3) that acquires error information when an error occurs in a running first application, determines from the acquired error information a type and a cause of the occurred error, acquires a solution for resolving the occurred error from a reference dataset using the determined type and cause, verifies suitability of the acquired solution based on status information of the electronic device, and if the acquired solution is verified to be suitable, provides guidance for the acquired solution to a user via the display.

[0159] The reference data set includes one or more error types, one or more causes of the errors, and one or more methods for resolving the errors.

[0160] If the error that has occurred is not resolved by the obtained solution, the processor may determine whether an updated version of the first application is available, and if an updated version is available, provide guidance for updating the first application to the user via the display.

[0161] If there is no update version, the processor may provide information regarding the error that occurred (e.g., information 1011 in FIG. 10 ) to the user via the display, and if there is user input regarding the provided information, may display a screen on the display (e.g., screen 1020 in FIG. 10 ) including a history of the error that occurred and a button for deleting the first application.

[0162] If the reference data set does not contain an error type corresponding to the identified type, the processor may determine whether an updated version of the first application is available, and if an updated version is available, provide guidance for updating the first application to the user via the display.

[0163] If the processor obtains multiple solutions for resolving the occurred error from the reference dataset using the identified type and cause, it may select a top-order solution in a given order of the obtained solutions, verify the suitability of the selected solution, and if the selected solution is verified to be suitable, provide guidance for the selected solution to the user via the display.

[0164] When the processor obtains multiple solutions for solving the occurred error from the reference dataset using the identified type and cause, the processor may change (or arrange) the order in which the obtained solutions are provided based on the number of times each of the obtained solutions is provided, select the solution with the highest order in the changed order, verify the suitability of the selected solution, and if the selected solution is verified to be suitable, provide guidance for the selected solution to the user via the display.

[0165] The processor may calculate a difference in the number of times provided between solutions in successive orders among the obtained solutions, and if the calculated differences are identical to each other, may change the given order so that the solution with the lowest order in the given order (e.g., solution C in FIG. 12) becomes the solution with the highest order in the changed order.

[0166] When the difference between the number of times a solution method with a next highest order in the given order is provided and the number of times a solution method with an order lower than the next highest order is provided, among the calculated differences, is equal to or greater than a certain level, the processor may change the given order so that the solution method with the next highest order (e.g., solution B in FIG. 11) becomes the solution method with the highest order in the changed order.

[0167] The processor may initialize the presentation count of each of the obtained solutions when the presentation order is changed.

[0168] If the processor obtains multiple solutions for resolving the occurred error from the reference dataset using the identified type and cause, it provides a list of the obtained solutions to the user via the display, and the user can select a solution.

[0169] The reference data set may be stored in at least one of the memory and a server (eg, server 620 of FIG. 6).

[0170] The processor may confirm or determine whether the first application is a third-party application based on the acquired error information, and if the first application is the third-party application, perform the operations of determining the type and cause, obtaining the solution, verifying the compatibility, and providing the guidance to the user.

[0171] The processor may display a pop-up window for the guidance on the display via an operating system framework (e.g., framework 410 of FIG. 4) or via a second application (e.g., system application 420 of FIG. 4).

[0172] According to one embodiment, an electronic device (e.g., electronic device 300 of FIG. 3 ) includes a memory (e.g., memory 310 of FIG. 3 ) that stores a reference data set including one or more error types, one or more causes of the error, and one or more methods for solving the error, and stores one or more applications; a display (e.g., display 330 of FIG. 3 ); and a processor (e.g., processor 320 of FIG. 3 ) that acquires error information when an error occurs in a first application being executed, confirms or determines whether the first application is a third-party application based on the acquired error information, if the first application is a third-party application, determines a type and a cause of the occurred error from the acquired error information, acquires a solution for solving the occurred error from the reference data set using the determined type and cause, verifies suitability of the acquired solution based on status information of the electronic device, and if the acquired solution is verified to be suitable, displays a pop-up window on the display for guidance regarding the acquired solution.

[0173] If the error that has occurred is not resolved by the obtained solution, the processor may determine whether an updated version of the first application is available, and if an updated version is available, may display a pop-up window on the display providing guidance on updating the first application.

[0174] When the processor obtains a plurality of solutions for solving the occurred error from the reference dataset using the identified type and cause, the processor may select a solution with the highest order in the given order of the obtained solutions, verify the suitability of the selected solution, and if the selected solution is verified to be suitable, display a pop-up window on a display for guidance regarding the selected solution.

[0175] When the processor obtains multiple solutions for solving the occurred error from the reference dataset using the identified type and cause, the processor may rearrange (or arrange) the provided order of the obtained solutions based on the number of times each of the obtained solutions is provided, select the solution with the highest order in the rearranged order, verify the suitability of the selected solution, and if the selected solution is verified to be suitable, display a pop-up window on the display for guidance regarding the selected solution.

[0176] The processor may display the pop-up window on the display via an operating system framework or via a second application.

[0177] According to one implementation, a method of operating an electronic device (e.g., electronic device 300 of FIG. 3) includes, when an error occurs in a running first application, an operation of acquiring error information, determining a type and cause of the occurred error from the acquired error information, acquiring a solution for resolving the occurred error from a reference dataset using the determined type and cause, verifying suitability of the acquired solution based on status information of the electronic device, and, if the acquired solution is verified to be suitable, providing guidance on the acquired solution to a user via a display.

[0178] In one embodiment, the method of operating an electronic device may further include an operation of determining whether an updated version of the first application is available if the obtained solution does not resolve the occurred error, and, if an updated version is available, providing guidance for updating the first application to the user via the display.

Claims

1. 1. An electronic device comprising: A display and A processor; a memory operatively coupled to the processor and storing one or more instructions for execution by the processor; Including, When the instructions are executed, the processor: acquire error information based on an error occurring in a first application executed by the processor, determine a type of the error and a cause of the error based on the acquired error information, acquire a solution for solving the error from a reference dataset using the determined type of the error and the determined cause of the error, verify suitability of the acquired solution based on status information of the electronic device, and provide guidance for the acquired solution to a user via the display based on the acquired solution verified to be suitable; The reference data set includes one or more error types, one or more causes of error occurrence, and one or more methods of resolving the error.

2. 2. The electronic device of claim 1, wherein the processor determines whether there is an updated version of the first application based on the error that has not been resolved by the obtained solution, and provides guidance to the updated version of the first application to the user via the display based on the updated version.

3. 3. The electronic device of claim 2, wherein the processor, based on a determination that there is no updated version of the first application, provides information about the error to the user via the display, and, based on user input on the provided information, displays a screen on the display including a history of the error and a button for deleting the first application.

4. The electronic device of any one of claims 1 to 3, wherein the processor determines whether or not there is an updated version of the first application based on a determination that the reference dataset does not contain an error type corresponding to the recognized type, and provides guidance to the user regarding the updated version of the first application via the display based on a determination that there is an updated version of the first application.

5. The electronic device of any one of claims 1 to 4, wherein the processor retrieves a plurality of solutions for resolving the error from the reference dataset using the identified type and cause, selects a top-ordered solution in a given order of the retrieved solutions, verifies suitability of the selected solution, and provides guidance to the user via the display for the selected solution based on the selected solution verified to be suitable.

6. The electronic device of any one of claims 1 to 5, wherein the processor obtains a plurality of solutions for resolving the error from the reference dataset using the identified type and cause, arranges a given order of the obtained solutions based on the number of times each of the obtained solutions has been provided, selects the solution with the highest position in the given order, verifies the suitability of the selected solution, and provides guidance to the selected solution to the user via the display based on the selected solution verified to be suitable.

7. 7. The electronic device of claim 6, wherein the processor determines a difference between the number of times the obtained solutions are presented, and based on the determined difference, modifies the given order such that a solution in a lowest position in the given order is moved to a highest position in the given order.

8. 8. The electronic device of claim 7, wherein the processor determines whether a difference between a first number of times a first solution in a next higher position in the given order and a second number of times a second solution in a lower position than the first solution is equal to or greater than a certain level, and based on the determined difference, modifies the given order such that the first solution in the next higher position is moved to the top position in the given order.

9. The electronic device of claim 6 , wherein the processor initializes the presentation count for each of the obtained solutions based on the arranged presentation order.

10. The electronic device of any one of claims 1 to 9, wherein the processor obtains a plurality of solutions for resolving the error from the reference dataset using the identified type and the identified cause, provides a list of the obtained solutions to the user via the display, and performs a solution selected by the user from the provided solutions.

11. The electronic device according to any one of claims 1 to 10, wherein the reference data set is stored in at least one of the memory or a server.

12. 12. The electronic device of claim 1, wherein the processor determines whether a first application is a third party application, and determines the cause of the error and the type of the error based on the first application being determined to be the third party application.

13. The electronic device according to any one of claims 1 to 12, wherein the processor displays a pop-up window for the guidance on the display via an operating system framework or via a second application.

14. 1. A method of operating an electronic device, comprising: An operation of acquiring error information based on an error that has occurred in the first application being executed; An operation of determining a type of the error and a cause of the error from the acquired error information; obtaining a solution for resolving said error from a reference data set using said identified type and said identified cause; verifying suitability of the obtained solution based on status information of the electronic device; providing a user with guidance for the obtained solution via a display based on the obtained solution being verified as being suitable; Including, The reference data set includes a plurality of error types, a plurality of causes of the error, and a plurality of solutions.

15. determining whether an updated version of the first application is available based on the error that has not been resolved by the obtained solution; The method of claim 14 , further comprising the act of providing, based on the determination that an updated version is available, a guide to the updated version of the first application to the user via the display.