2015-07-02 6 views
9

Ich habe eine Anwendung, die in einem separaten Prozess android-Dienst gestartet wird. Damit laufen zwei Prozesse. Einer ist meine Hauptanwendung und ein anderer ist der Service.Crittercism nicht auf Android-Dienst mit separatem Prozess arbeiten

Jetzt habe ich versucht, crittercism (es ist ein Mobile Application Performance Management-Tool) in durch Ansätze, aber es ist nicht in der Lage, ein Crash-Protokoll für den Service zu generieren.

  1. Crittercism nur in App integrieren.

    Ergebnis: Es generiert Crash-Protokoll nur für App, nicht für Service.

  2. Integrieren Crittercism in Dienst in onCreate() Methode.

    Ergebnis: Es wird kein Crash-Protokoll angezeigt und auch keine App-Last in Live-Statistiken angezeigt.

  3. Integrieren Crittercism sowohl App und Service.

    Ergebnis: Es generiert Crash-Protokoll für die App nur nicht für den Dienst.

Wie bekomme ich Crash-Log für Android-Dienst? Hier

ist der Code, durch die ich umgesetzt haben:

MainApplication.java

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    Crittercism.initialize(getApplicationContext(), "CRITTERCISM_APP_ID"); 
} 

MyService.java

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    Crittercism.initialize(getApplicationContext(), "CRITTERCISM_APP_ID"); // Same app id which is used for MainApplication.java 
} 

build.gradle Datei von beiden Service und Hauptanwendung:

dependencies { 
    compile 'com.crittercism:crittercism-android-agent:5.0.6' 
} 

Auch unter Erlaubnis hinzugefügt sowohl für Service und Haupt

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
+0

# 3 sollte die richtige Antwort sein, wie man dieses Zeug in beiden Prozessen bis setzen müßte. Sie könnten in Erwägung ziehen, Ihren Code dort zu veröffentlichen, wo Sie Crittercism konfigurieren, und vielleicht können wir einige Änderungen vorschlagen. – CommonsWare

+0

@CommonsWare ich meine Frage mit Code aktualisiert haben ... – Sanket

+0

Hey - einer der Gründer von Crittercism hier können Sie eine Notiz an [email protected] schicken? – crittercismrob

Antwort

4

Ich bekam Antwort von Crittercism Gemeinschaft und unten ist ihre Antwort:

The crashes cannot be captured in a remote service and because its Android issue. We also do not count app loads in remote services but other data is collected: HE, Network, etc. Crittercism counts actual app loads only. 

One possible work around is to manually wrap all of the top level methods in the service in a try/catch block. In the catch block, use Crittercism.logHandledException. 

Here's an example: 

try { 
customersTopLevelMethod(); 
} catch (Throwable t) { 
Crittercism.logHandledException(t); 

// You probably want to rethrow the exception since the service will now 
// be in an invalid state. 
throw t; 
} 

Hier ist der Link zu - http://community.crittercism.com/questions/1210/crittercism-not-working-on-android-service-with-se.html#answer-1217

Verwandte Themen